Glib::TimeZone Glib::wrap(GTimeZone*, bool) (struct GTimeZone * object, bool take_copy)
{
  int D.86633;

  D.86633 = (int) take_copy;
  Glib::TimeZone::TimeZone (<retval>, object, D.86633);
  return <retval>;
}


Glib::TimeZone::TimeZone() (struct TimeZone * const this)
{
  this->gobject_ = 0B;
}


Glib::TimeZone::TimeZone(const Glib::TimeZone&) (struct TimeZone * const this, const struct TimeZone & src)
{
  struct GTimeZone * iftmp.0;
  struct GTimeZone * D.86636;

  D.86636 = src->gobject_;
  if (D.86636 != 0B) goto <D.86637>; else goto <D.86638>;
  <D.86637>:
  D.86636 = src->gobject_;
  iftmp.0 = g_time_zone_ref (D.86636);
  goto <D.86639>;
  <D.86638>:
  iftmp.0 = 0B;
  <D.86639>:
  this->gobject_ = iftmp.0;
}


Glib::TimeZone::TimeZone(GTimeZone*, bool) (struct TimeZone * const this, struct GTimeZone * castitem, bool make_a_copy)
{
  bool D.86641;
  struct GTimeZone * D.86647;

  D.86641 = ~make_a_copy;
  if (D.86641 != 0) goto <D.86642>; else goto <D.86643>;
  <D.86642>:
  this->gobject_ = castitem;
  goto <D.86644>;
  <D.86643>:
  if (castitem != 0B) goto <D.86645>; else goto <D.86646>;
  <D.86645>:
  D.86647 = g_time_zone_ref (castitem);
  this->gobject_ = D.86647;
  goto <D.86648>;
  <D.86646>:
  this->gobject_ = 0B;
  <D.86648>:
  <D.86644>:
}


Glib::TimeZone& Glib::TimeZone::operator=(const Glib::TimeZone&) (struct TimeZone * const this, const struct TimeZone & src)
{
  struct GTimeZone * iftmp.1;
  struct GTimeZone * D.86651;
  struct GTimeZone * D.86655;
  struct TimeZone & D.86659;
  struct GTimeZone * const new_gobject;

  D.86651 = src->gobject_;
  if (D.86651 != 0B) goto <D.86652>; else goto <D.86653>;
  <D.86652>:
  D.86651 = src->gobject_;
  iftmp.1 = g_time_zone_ref (D.86651);
  goto <D.86654>;
  <D.86653>:
  iftmp.1 = 0B;
  <D.86654>:
  new_gobject = iftmp.1;
  D.86655 = this->gobject_;
  if (D.86655 != 0B) goto <D.86656>; else goto <D.86657>;
  <D.86656>:
  D.86655 = this->gobject_;
  g_time_zone_unref (D.86655);
  goto <D.86658>;
  <D.86657>:
  <D.86658>:
  this->gobject_ = new_gobject;
  D.86659 = this;
  return D.86659;
}


Glib::TimeZone::~TimeZone() (struct TimeZone * const this)
{
  struct GTimeZone * D.86662;

  {
    try
      {
        D.86662 = this->gobject_;
        if (D.86662 != 0B) goto <D.86663>; else goto <D.86664>;
        <D.86663>:
        D.86662 = this->gobject_;
        g_time_zone_unref (D.86662);
        goto <D.86665>;
        <D.86664>:
        <D.86665>:
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.85949>:
}


GTimeZone* Glib::TimeZone::gobj_copy() const (const struct TimeZone * const this)
{
  struct GTimeZone * D.86668;
  struct GTimeZone * D.86669;

  D.86669 = this->gobject_;
  D.86668 = g_time_zone_ref (D.86669);
  return D.86668;
}


static Glib::TimeZone Glib::TimeZone::create(const Glib::ustring&) (const struct ustring & identifier)
{
  const char * D.86673;
  struct GTimeZone * D.86674;

  D.86673 = Glib::ustring::c_str (identifier);
  D.86674 = g_time_zone_new (D.86673);
  *<retval> = Glib::wrap (D.86674, 0); [return slot optimization]
  return <retval>;
}


static Glib::TimeZone Glib::TimeZone::create_local() ()
{
  struct GTimeZone * D.86679;

  D.86679 = g_time_zone_new_local ();
  *<retval> = Glib::wrap (D.86679, 0); [return slot optimization]
  return <retval>;
}


static Glib::TimeZone Glib::TimeZone::create_utc() ()
{
  struct GTimeZone * D.86683;

  D.86683 = g_time_zone_new_utc ();
  *<retval> = Glib::wrap (D.86683, 0); [return slot optimization]
  return <retval>;
}


int Glib::TimeZone::find_interval(Glib::TimeType, gint64) const (const struct TimeZone * const this, TimeType type, gint64 time)
{
  int D.86686;
  const struct GTimeZone * D.86687;

  D.86687 = Glib::TimeZone::gobj (this);
  D.86686 = g_time_zone_find_interval (D.86687, type, time);
  return D.86686;
}


const GTimeZone* Glib::TimeZone::gobj() const (const struct TimeZone * const this)
{
  const struct GTimeZone * D.86690;

  D.86690 = this->gobject_;
  return D.86690;
}


int Glib::TimeZone::adjust_time(Glib::TimeType, gint64&) const (const struct TimeZone * const this, TimeType type, gint64 & time)
{
  int D.86692;
  const struct GTimeZone * D.86693;

  D.86693 = Glib::TimeZone::gobj (this);
  D.86692 = g_time_zone_adjust_time (D.86693, type, time);
  return D.86692;
}


Glib::ustring Glib::TimeZone::get_abbreviation(int) const (const struct TimeZone * const this, int interval)
{
  const struct GTimeZone * D.86697;
  const gchar * D.86698;

  D.86697 = Glib::TimeZone::gobj (this);
  D.86698 = g_time_zone_get_abbreviation (D.86697, interval);
  *<retval> = Glib::convert_const_gchar_ptr_to_ustring (D.86698); [return slot optimization]
  return <retval>;
}


Glib::ustring Glib::convert_const_gchar_ptr_to_ustring(const char*) (const char * str)
{
  struct ustring * D.86704;

  if (str != 0B) goto <D.86702>; else goto <D.86703>;
  <D.86702>:
  D.86704 = <retval>;
  Glib::ustring::ustring (D.86704, str);
  goto <D.86705>;
  <D.86703>:
  D.86704 = <retval>;
  Glib::ustring::ustring (D.86704);
  <D.86705>:
  return <retval>;
}


gint32 Glib::TimeZone::get_offset(int) const (const struct TimeZone * const this, int interval)
{
  gint32 D.86707;
  const struct GTimeZone * D.86708;

  D.86708 = Glib::TimeZone::gobj (this);
  D.86707 = g_time_zone_get_offset (D.86708, interval);
  return D.86707;
}


bool Glib::TimeZone::is_dst(int) const (const struct TimeZone * const this, int interval)
{
  bool D.86711;
  const struct GTimeZone * D.86712;
  int D.86713;

  D.86712 = Glib::TimeZone::gobj (this);
  D.86713 = g_time_zone_is_dst (D.86712, interval);
  D.86711 = D.86713 != 0;
  return D.86711;
}


