bool Gio::MenuAttributeIter::get_next(Glib::ustring&, Glib::VariantBase&) (struct MenuAttributeIter * const this, struct ustring & out_name, struct VariantBase & value)
{
  struct GMenuAttributeIter * D.97383;
  int D.97384;
  const char * g_out_name.0;
  struct GVariant * g_value.1;
  bool D.97387;
  const char * g_out_name;
  struct GVariant * g_value;
  const bool result;

  try
    {
      g_out_name = 0B;
      g_value = 0B;
      D.97383 = Gio::MenuAttributeIter::gobj (this);
      D.97384 = g_menu_attribute_iter_get_next (D.97383, &g_out_name, &g_value);
      result = D.97384 != 0;
      g_out_name.0 = g_out_name;
      Glib::ustring::operator= (out_name, g_out_name.0);
      g_value.1 = g_value;
      Glib::VariantBase::init (value, g_value.1, 0);
      D.97387 = result;
      return D.97387;
    }
  finally
    {
      g_out_name = {CLOBBER};
      g_value = {CLOBBER};
    }
}


GMenuAttributeIter* Gio::MenuAttributeIter::gobj() (struct MenuAttributeIter * const this)
{
  struct GMenuAttributeIter * D.97393;
  int (*__vtbl_ptr_type) () * D.97394;
  int (*__vtbl_ptr_type) () * D.97395;
  long int D.97396;
  sizetype D.97397;
  struct ObjectBase * D.97398;

  D.97394 = this->D.86022._vptr.Object;
  D.97395 = D.97394 + 18446744073709551592;
  D.97396 = MEM[(long int *)D.97395];
  D.97397 = (sizetype) D.97396;
  D.97398 = this + D.97397;
  D.97393 = D.97398->gobject_;
  return D.97393;
}


Glib::RefPtr<Gio::MenuAttributeIter> Glib::wrap(GMenuAttributeIter*, bool) (struct GMenuAttributeIter * object, bool take_copy)
{
  struct MenuAttributeIter * iftmp.2;
  int D.97402;
  struct ObjectBase * D.97403;

  D.97402 = (int) take_copy;
  D.97403 = Glib::wrap_auto (object, D.97402);
  if (D.97403 == 0B) goto <D.97404>; else goto <D.97405>;
  <D.97404>:
  iftmp.2 = 0B;
  goto <D.97406>;
  <D.97405>:
  iftmp.2 = __dynamic_cast (D.97403, &_ZTIN4Glib10ObjectBaseE, &_ZTIN3Gio17MenuAttributeIterE, -1);
  <D.97406>:
  Glib::RefPtr<Gio::MenuAttributeIter>::RefPtr (<retval>, iftmp.2);
  return <retval>;
}


Glib::RefPtr<T_CppObject>::RefPtr(T_CppObject*) [with T_CppObject = Gio::MenuAttributeIter] (struct RefPtr * const this, struct MenuAttributeIter * pCppObject)
{
  this->pCppObject_ = pCppObject;
}


const Glib::Class& Gio::MenuAttributeIter_Class::init() (struct MenuAttributeIter_Class * const this)
{
  long unsigned int D.97409;
  long unsigned int D.97412;
  struct Class * D.97413;
  const struct Class & D.97415;

  D.97409 = this->D.86065.gtype_;
  if (D.97409 == 0) goto <D.97410>; else goto <D.97411>;
  <D.97410>:
  this->D.86065.class_init_func_ = class_init_function;
  D.97412 = g_menu_attribute_iter_get_type ();
  D.97413 = &this->D.86065;
  Glib::Class::register_derived_type (D.97413, D.97412);
  goto <D.97414>;
  <D.97411>:
  <D.97414>:
  D.97415 = &this->D.86065;
  return D.97415;
}


static void Gio::MenuAttributeIter_Class::class_init_function(void*, void*) (void * g_class, void * class_data)
{
  struct BaseClassType * const klass;

  klass = g_class;
  Glib::Object_Class::class_init_function (klass, class_data);
}


static Glib::ObjectBase* Gio::MenuAttributeIter_Class::wrap_new(GObject*) (struct GObject * object)
{
  struct ObjectBase * D.97418;
  struct ObjectBase * iftmp.3;
  void * D.96654;
  void * D.97420;
  int (*__vtbl_ptr_type) () * D.97423;
  int (*__vtbl_ptr_type) () * D.97424;
  long int D.97425;
  sizetype D.97426;

  D.96654 = operator new (48);
  try
    {
      Gio::MenuAttributeIter::MenuAttributeIter (D.96654, object);
    }
  catch
    {
      operator delete (D.96654);
    }
  D.97420 = D.96654;
  if (D.97420 != 0B) goto <D.97421>; else goto <D.97422>;
  <D.97421>:
  D.97423 = MEM[(struct MenuAttributeIter *)D.97420].D.86022._vptr.Object;
  D.97424 = D.97423 + 18446744073709551592;
  D.97425 = MEM[(long int *)D.97424];
  D.97426 = (sizetype) D.97425;
  iftmp.3 = D.97420 + D.97426;
  goto <D.97427>;
  <D.97422>:
  iftmp.3 = 0B;
  <D.97427>:
  D.97418 = iftmp.3;
  return D.97418;
}


GMenuAttributeIter* Gio::MenuAttributeIter::gobj_copy() (struct MenuAttributeIter * const this)
{
  int (*__vtbl_ptr_type) () * D.97431;
  int (*__vtbl_ptr_type) () * D.97432;
  long int D.97433;
  sizetype D.97434;
  struct ObjectBase * D.97435;
  int (*__vtbl_ptr_type) () * D.97436;
  int (*__vtbl_ptr_type) () * D.97437;
  int (*__vtbl_ptr_type) () D.97438;
  struct GMenuAttributeIter * D.97439;

  D.97431 = this->D.86022._vptr.Object;
  D.97432 = D.97431 + 18446744073709551592;
  D.97433 = MEM[(long int *)D.97432];
  D.97434 = (sizetype) D.97433;
  D.97435 = this + D.97434;
  D.97431 = this->D.86022._vptr.Object;
  D.97432 = D.97431 + 18446744073709551592;
  D.97433 = MEM[(long int *)D.97432];
  D.97434 = (sizetype) D.97433;
  D.97435 = this + D.97434;
  D.97436 = D.97435->_vptr.ObjectBase;
  D.97437 = D.97436 + 16;
  D.97438 = *D.97437;
  D.97431 = this->D.86022._vptr.Object;
  D.97432 = D.97431 + 18446744073709551592;
  D.97433 = MEM[(long int *)D.97432];
  D.97434 = (sizetype) D.97433;
  D.97435 = this + D.97434;
  OBJ_TYPE_REF(D.97438;(const struct ObjectBase)D.97435->2) (D.97435);
  D.97439 = Gio::MenuAttributeIter::gobj (this);
  return D.97439;
}


Gio::MenuAttributeIter::MenuAttributeIter(const Glib::ConstructParams&) (struct MenuAttributeIter * const this, const void * * __vtt_parm, const struct ConstructParams & construct_params)
{
  struct trackable * D.97443;
  const void * * iftmp.4;
  struct ObjectBase * D.97451;
  const void * * iftmp.5;
  struct Object * D.97457;
  int (*__vtbl_ptr_type) () * iftmp.6;
  sizetype iftmp.7;
  int (*__vtbl_ptr_type) () * D.97465;
  int (*__vtbl_ptr_type) () * D.97466;
  long int D.97467;
  struct ObjectBase * D.97469;
  int (*__vtbl_ptr_type) () * iftmp.8;
  const void * * iftmp.9;
  const void * * iftmp.10;

  if (0 != 0) goto <D.97441>; else goto <D.97442>;
  <D.97441>:
  D.97443 = &this->D.86025;
  sigc::trackable::trackable (D.97443);
  goto <D.97444>;
  <D.97442>:
  <D.97444>:
  try
    {
      if (0 != 0) goto <D.97445>; else goto <D.97446>;
      <D.97445>:
      if (0 == 0) goto <D.97448>; else goto <D.97449>;
      <D.97448>:
      iftmp.4 = __vtt_parm + 32;
      goto <D.97450>;
      <D.97449>:
      iftmp.4 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
      <D.97450>:
      D.97451 = &this->D.86024;
      Glib::ObjectBase::ObjectBase (D.97451, iftmp.4);
      goto <D.97452>;
      <D.97446>:
      <D.97452>:
      try
        {
          if (0 == 0) goto <D.97454>; else goto <D.97455>;
          <D.97454>:
          iftmp.5 = __vtt_parm + 8;
          goto <D.97456>;
          <D.97455>:
          iftmp.5 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
          <D.97456>:
          D.97457 = &this->D.86022;
          Glib::Object::Object (D.97457, iftmp.5, construct_params);
          try
            {
              if (0 == 0) goto <D.97459>; else goto <D.97460>;
              <D.97459>:
              iftmp.6 = *__vtt_parm;
              goto <D.97461>;
              <D.97460>:
              iftmp.6 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 32B];
              <D.97461>:
              this->D.86022._vptr.Object = iftmp.6;
              if (0 == 0) goto <D.97463>; else goto <D.97464>;
              <D.97463>:
              D.97465 = this->D.86022._vptr.Object;
              D.97466 = D.97465 + 18446744073709551592;
              D.97467 = MEM[(long int *)D.97466];
              iftmp.7 = (sizetype) D.97467;
              goto <D.97468>;
              <D.97464>:
              iftmp.7 = 8;
              <D.97468>:
              D.97469 = this + iftmp.7;
              if (0 == 0) goto <D.97471>; else goto <D.97472>;
              <D.97471>:
              iftmp.8 = MEM[(const void * *)__vtt_parm + 24B];
              goto <D.97473>;
              <D.97472>:
              iftmp.8 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 112B];
              <D.97473>:
              D.97469->_vptr.ObjectBase = iftmp.8;
            }
          catch
            {
              if (0 == 0) goto <D.97475>; else goto <D.97476>;
              <D.97475>:
              iftmp.9 = __vtt_parm + 8;
              goto <D.97477>;
              <D.97476>:
              iftmp.9 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
              <D.97477>:
              D.97457 = &this->D.86022;
              Glib::Object::~Object (D.97457, iftmp.9);
            }
        }
      catch
        {
          if (0 != 0) goto <D.97478>; else goto <D.97479>;
          <D.97478>:
          if (0 == 0) goto <D.97481>; else goto <D.97482>;
          <D.97481>:
          iftmp.10 = __vtt_parm + 32;
          goto <D.97483>;
          <D.97482>:
          iftmp.10 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
          <D.97483>:
          D.97451 = &this->D.86024;
          Glib::ObjectBase::~ObjectBase (D.97451, iftmp.10);
          goto <D.97484>;
          <D.97479>:
          <D.97484>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.97485>; else goto <D.97486>;
      <D.97485>:
      D.97443 = &this->D.86025;
      sigc::trackable::~trackable (D.97443);
      goto <D.97487>;
      <D.97486>:
      <D.97487>:
    }
}


Gio::MenuAttributeIter::MenuAttributeIter(const Glib::ConstructParams&) (struct MenuAttributeIter * const this, const struct ConstructParams & construct_params)
{
  struct trackable * D.97492;
  const void * * iftmp.11;
  struct ObjectBase * D.97500;
  const void * * iftmp.12;
  struct Object * D.97506;
  int (*__vtbl_ptr_type) () * iftmp.13;
  const void * * D.97510;
  sizetype iftmp.14;
  int (*__vtbl_ptr_type) () * D.97515;
  int (*__vtbl_ptr_type) () * D.97516;
  long int D.97517;
  struct ObjectBase * D.97519;
  int (*__vtbl_ptr_type) () * iftmp.15;
  const void * * iftmp.16;
  const void * * iftmp.17;

  if (1 != 0) goto <D.97490>; else goto <D.97491>;
  <D.97490>:
  D.97492 = &this->D.86025;
  sigc::trackable::trackable (D.97492);
  goto <D.97493>;
  <D.97491>:
  <D.97493>:
  try
    {
      if (1 != 0) goto <D.97494>; else goto <D.97495>;
      <D.97494>:
      if (1 == 0) goto <D.97497>; else goto <D.97498>;
      <D.97497>:
      iftmp.11 = 32B;
      goto <D.97499>;
      <D.97498>:
      iftmp.11 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
      <D.97499>:
      D.97500 = &this->D.86024;
      Glib::ObjectBase::ObjectBase (D.97500, iftmp.11);
      goto <D.97501>;
      <D.97495>:
      <D.97501>:
      try
        {
          if (1 == 0) goto <D.97503>; else goto <D.97504>;
          <D.97503>:
          iftmp.12 = 8B;
          goto <D.97505>;
          <D.97504>:
          iftmp.12 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
          <D.97505>:
          D.97506 = &this->D.86022;
          Glib::Object::Object (D.97506, iftmp.12, construct_params);
          try
            {
              if (1 == 0) goto <D.97508>; else goto <D.97509>;
              <D.97508>:
              D.97510 = 0B;
              iftmp.13 = *D.97510;
              goto <D.97511>;
              <D.97509>:
              iftmp.13 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 32B];
              <D.97511>:
              this->D.86022._vptr.Object = iftmp.13;
              if (1 == 0) goto <D.97513>; else goto <D.97514>;
              <D.97513>:
              D.97515 = this->D.86022._vptr.Object;
              D.97516 = D.97515 + 18446744073709551592;
              D.97517 = MEM[(long int *)D.97516];
              iftmp.14 = (sizetype) D.97517;
              goto <D.97518>;
              <D.97514>:
              iftmp.14 = 8;
              <D.97518>:
              D.97519 = this + iftmp.14;
              if (1 == 0) goto <D.97521>; else goto <D.97522>;
              <D.97521>:
              iftmp.15 = MEM[(const void * *)0B + 24B];
              goto <D.97523>;
              <D.97522>:
              iftmp.15 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 112B];
              <D.97523>:
              D.97519->_vptr.ObjectBase = iftmp.15;
            }
          catch
            {
              if (1 == 0) goto <D.97525>; else goto <D.97526>;
              <D.97525>:
              iftmp.16 = 8B;
              goto <D.97527>;
              <D.97526>:
              iftmp.16 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
              <D.97527>:
              D.97506 = &this->D.86022;
              Glib::Object::~Object (D.97506, iftmp.16);
            }
        }
      catch
        {
          if (1 != 0) goto <D.97528>; else goto <D.97529>;
          <D.97528>:
          if (1 == 0) goto <D.97531>; else goto <D.97532>;
          <D.97531>:
          iftmp.17 = 32B;
          goto <D.97533>;
          <D.97532>:
          iftmp.17 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
          <D.97533>:
          D.97500 = &this->D.86024;
          Glib::ObjectBase::~ObjectBase (D.97500, iftmp.17);
          goto <D.97534>;
          <D.97529>:
          <D.97534>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.97535>; else goto <D.97536>;
      <D.97535>:
      D.97492 = &this->D.86025;
      sigc::trackable::~trackable (D.97492);
      goto <D.97537>;
      <D.97536>:
      <D.97537>:
    }
}


Gio::MenuAttributeIter::MenuAttributeIter(GMenuAttributeIter*) (struct MenuAttributeIter * const this, const void * * __vtt_parm, struct GMenuAttributeIter * castitem)
{
  struct trackable * D.97542;
  const void * * iftmp.18;
  struct ObjectBase * D.97550;
  const void * * iftmp.19;
  struct Object * D.97556;
  int (*__vtbl_ptr_type) () * iftmp.20;
  sizetype iftmp.21;
  int (*__vtbl_ptr_type) () * D.97564;
  int (*__vtbl_ptr_type) () * D.97565;
  long int D.97566;
  struct ObjectBase * D.97568;
  int (*__vtbl_ptr_type) () * iftmp.22;
  const void * * iftmp.23;
  const void * * iftmp.24;

  if (0 != 0) goto <D.97540>; else goto <D.97541>;
  <D.97540>:
  D.97542 = &this->D.86025;
  sigc::trackable::trackable (D.97542);
  goto <D.97543>;
  <D.97541>:
  <D.97543>:
  try
    {
      if (0 != 0) goto <D.97544>; else goto <D.97545>;
      <D.97544>:
      if (0 == 0) goto <D.97547>; else goto <D.97548>;
      <D.97547>:
      iftmp.18 = __vtt_parm + 32;
      goto <D.97549>;
      <D.97548>:
      iftmp.18 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
      <D.97549>:
      D.97550 = &this->D.86024;
      Glib::ObjectBase::ObjectBase (D.97550, iftmp.18);
      goto <D.97551>;
      <D.97545>:
      <D.97551>:
      try
        {
          if (0 == 0) goto <D.97553>; else goto <D.97554>;
          <D.97553>:
          iftmp.19 = __vtt_parm + 8;
          goto <D.97555>;
          <D.97554>:
          iftmp.19 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
          <D.97555>:
          D.97556 = &this->D.86022;
          Glib::Object::Object (D.97556, iftmp.19, castitem);
          try
            {
              if (0 == 0) goto <D.97558>; else goto <D.97559>;
              <D.97558>:
              iftmp.20 = *__vtt_parm;
              goto <D.97560>;
              <D.97559>:
              iftmp.20 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 32B];
              <D.97560>:
              this->D.86022._vptr.Object = iftmp.20;
              if (0 == 0) goto <D.97562>; else goto <D.97563>;
              <D.97562>:
              D.97564 = this->D.86022._vptr.Object;
              D.97565 = D.97564 + 18446744073709551592;
              D.97566 = MEM[(long int *)D.97565];
              iftmp.21 = (sizetype) D.97566;
              goto <D.97567>;
              <D.97563>:
              iftmp.21 = 8;
              <D.97567>:
              D.97568 = this + iftmp.21;
              if (0 == 0) goto <D.97570>; else goto <D.97571>;
              <D.97570>:
              iftmp.22 = MEM[(const void * *)__vtt_parm + 24B];
              goto <D.97572>;
              <D.97571>:
              iftmp.22 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 112B];
              <D.97572>:
              D.97568->_vptr.ObjectBase = iftmp.22;
            }
          catch
            {
              if (0 == 0) goto <D.97574>; else goto <D.97575>;
              <D.97574>:
              iftmp.23 = __vtt_parm + 8;
              goto <D.97576>;
              <D.97575>:
              iftmp.23 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
              <D.97576>:
              D.97556 = &this->D.86022;
              Glib::Object::~Object (D.97556, iftmp.23);
            }
        }
      catch
        {
          if (0 != 0) goto <D.97577>; else goto <D.97578>;
          <D.97577>:
          if (0 == 0) goto <D.97580>; else goto <D.97581>;
          <D.97580>:
          iftmp.24 = __vtt_parm + 32;
          goto <D.97582>;
          <D.97581>:
          iftmp.24 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
          <D.97582>:
          D.97550 = &this->D.86024;
          Glib::ObjectBase::~ObjectBase (D.97550, iftmp.24);
          goto <D.97583>;
          <D.97578>:
          <D.97583>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.97584>; else goto <D.97585>;
      <D.97584>:
      D.97542 = &this->D.86025;
      sigc::trackable::~trackable (D.97542);
      goto <D.97586>;
      <D.97585>:
      <D.97586>:
    }
}


Gio::MenuAttributeIter::MenuAttributeIter(GMenuAttributeIter*) (struct MenuAttributeIter * const this, struct GMenuAttributeIter * castitem)
{
  struct trackable * D.97591;
  const void * * iftmp.25;
  struct ObjectBase * D.97599;
  const void * * iftmp.26;
  struct Object * D.97605;
  int (*__vtbl_ptr_type) () * iftmp.27;
  const void * * D.97609;
  sizetype iftmp.28;
  int (*__vtbl_ptr_type) () * D.97614;
  int (*__vtbl_ptr_type) () * D.97615;
  long int D.97616;
  struct ObjectBase * D.97618;
  int (*__vtbl_ptr_type) () * iftmp.29;
  const void * * iftmp.30;
  const void * * iftmp.31;

  if (1 != 0) goto <D.97589>; else goto <D.97590>;
  <D.97589>:
  D.97591 = &this->D.86025;
  sigc::trackable::trackable (D.97591);
  goto <D.97592>;
  <D.97590>:
  <D.97592>:
  try
    {
      if (1 != 0) goto <D.97593>; else goto <D.97594>;
      <D.97593>:
      if (1 == 0) goto <D.97596>; else goto <D.97597>;
      <D.97596>:
      iftmp.25 = 32B;
      goto <D.97598>;
      <D.97597>:
      iftmp.25 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
      <D.97598>:
      D.97599 = &this->D.86024;
      Glib::ObjectBase::ObjectBase (D.97599, iftmp.25);
      goto <D.97600>;
      <D.97594>:
      <D.97600>:
      try
        {
          if (1 == 0) goto <D.97602>; else goto <D.97603>;
          <D.97602>:
          iftmp.26 = 8B;
          goto <D.97604>;
          <D.97603>:
          iftmp.26 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
          <D.97604>:
          D.97605 = &this->D.86022;
          Glib::Object::Object (D.97605, iftmp.26, castitem);
          try
            {
              if (1 == 0) goto <D.97607>; else goto <D.97608>;
              <D.97607>:
              D.97609 = 0B;
              iftmp.27 = *D.97609;
              goto <D.97610>;
              <D.97608>:
              iftmp.27 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 32B];
              <D.97610>:
              this->D.86022._vptr.Object = iftmp.27;
              if (1 == 0) goto <D.97612>; else goto <D.97613>;
              <D.97612>:
              D.97614 = this->D.86022._vptr.Object;
              D.97615 = D.97614 + 18446744073709551592;
              D.97616 = MEM[(long int *)D.97615];
              iftmp.28 = (sizetype) D.97616;
              goto <D.97617>;
              <D.97613>:
              iftmp.28 = 8;
              <D.97617>:
              D.97618 = this + iftmp.28;
              if (1 == 0) goto <D.97620>; else goto <D.97621>;
              <D.97620>:
              iftmp.29 = MEM[(const void * *)0B + 24B];
              goto <D.97622>;
              <D.97621>:
              iftmp.29 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 112B];
              <D.97622>:
              D.97618->_vptr.ObjectBase = iftmp.29;
            }
          catch
            {
              if (1 == 0) goto <D.97624>; else goto <D.97625>;
              <D.97624>:
              iftmp.30 = 8B;
              goto <D.97626>;
              <D.97625>:
              iftmp.30 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
              <D.97626>:
              D.97605 = &this->D.86022;
              Glib::Object::~Object (D.97605, iftmp.30);
            }
        }
      catch
        {
          if (1 != 0) goto <D.97627>; else goto <D.97628>;
          <D.97627>:
          if (1 == 0) goto <D.97630>; else goto <D.97631>;
          <D.97630>:
          iftmp.31 = 32B;
          goto <D.97632>;
          <D.97631>:
          iftmp.31 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
          <D.97632>:
          D.97599 = &this->D.86024;
          Glib::ObjectBase::~ObjectBase (D.97599, iftmp.31);
          goto <D.97633>;
          <D.97628>:
          <D.97633>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.97634>; else goto <D.97635>;
      <D.97634>:
      D.97591 = &this->D.86025;
      sigc::trackable::~trackable (D.97591);
      goto <D.97636>;
      <D.97635>:
      <D.97636>:
    }
}


Gio::MenuAttributeIter::~MenuAttributeIter() (struct MenuAttributeIter * const this, const void * * __vtt_parm)
{
  int (*__vtbl_ptr_type) () * iftmp.32;
  sizetype iftmp.33;
  int (*__vtbl_ptr_type) () * D.97646;
  int (*__vtbl_ptr_type) () * D.97647;
  long int D.97648;
  struct ObjectBase * D.97650;
  int (*__vtbl_ptr_type) () * iftmp.34;
  const void * * iftmp.35;
  struct Object * D.97659;
  int D.97660;
  const void * * iftmp.36;
  struct ObjectBase * D.97667;
  struct trackable * D.97671;
  int D.97673;

  {
    if (0 == 0) goto <D.97640>; else goto <D.97641>;
    <D.97640>:
    iftmp.32 = *__vtt_parm;
    goto <D.97642>;
    <D.97641>:
    iftmp.32 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 32B];
    <D.97642>:
    this->D.86022._vptr.Object = iftmp.32;
    if (0 == 0) goto <D.97644>; else goto <D.97645>;
    <D.97644>:
    D.97646 = this->D.86022._vptr.Object;
    D.97647 = D.97646 + 18446744073709551592;
    D.97648 = MEM[(long int *)D.97647];
    iftmp.33 = (sizetype) D.97648;
    goto <D.97649>;
    <D.97645>:
    iftmp.33 = 8;
    <D.97649>:
    D.97650 = this + iftmp.33;
    if (0 == 0) goto <D.97652>; else goto <D.97653>;
    <D.97652>:
    iftmp.34 = MEM[(const void * *)__vtt_parm + 24B];
    goto <D.97654>;
    <D.97653>:
    iftmp.34 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 112B];
    <D.97654>:
    D.97650->_vptr.ObjectBase = iftmp.34;
    try
      {
        try
          {
            try
              {
                try
                  {

                  }
                finally
                  {
                    if (0 == 0) goto <D.97656>; else goto <D.97657>;
                    <D.97656>:
                    iftmp.35 = __vtt_parm + 8;
                    goto <D.97658>;
                    <D.97657>:
                    iftmp.35 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
                    <D.97658>:
                    D.97659 = &this->D.86022;
                    Glib::Object::~Object (D.97659, iftmp.35);
                  }
              }
            finally
              {
                D.97660 = 0;
                if (D.97660 != 0) goto <D.97661>; else goto <D.97662>;
                <D.97661>:
                if (0 == 0) goto <D.97664>; else goto <D.97665>;
                <D.97664>:
                iftmp.36 = __vtt_parm + 32;
                goto <D.97666>;
                <D.97665>:
                iftmp.36 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
                <D.97666>:
                D.97667 = &this->D.86024;
                Glib::ObjectBase::~ObjectBase (D.97667, iftmp.36);
                goto <D.97668>;
                <D.97662>:
                <D.97668>:
              }
          }
        finally
          {
            D.97660 = 0;
            if (D.97660 != 0) goto <D.97669>; else goto <D.97670>;
            <D.97669>:
            D.97671 = &this->D.86025;
            sigc::trackable::~trackable (D.97671);
            goto <D.97672>;
            <D.97670>:
            <D.97672>:
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.96682>:
  D.97673 = 0;
  if (D.97673 != 0) goto <D.97674>; else goto <D.97675>;
  <D.97674>:
  operator delete (this);
  goto <D.97676>;
  <D.97675>:
  <D.97676>:
}


virtual Gio::MenuAttributeIter::~MenuAttributeIter() (struct MenuAttributeIter * const this)
{
  int (*__vtbl_ptr_type) () * iftmp.37;
  const void * * D.97692;
  sizetype iftmp.38;
  int (*__vtbl_ptr_type) () * D.97697;
  int (*__vtbl_ptr_type) () * D.97698;
  long int D.97699;
  struct ObjectBase * D.97701;
  int (*__vtbl_ptr_type) () * iftmp.39;
  const void * * iftmp.40;
  struct Object * D.97710;
  int D.97711;
  const void * * iftmp.41;
  struct ObjectBase * D.97718;
  struct trackable * D.97722;
  int D.97724;

  {
    if (2 == 0) goto <D.97690>; else goto <D.97691>;
    <D.97690>:
    D.97692 = 0B;
    iftmp.37 = *D.97692;
    goto <D.97693>;
    <D.97691>:
    iftmp.37 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 32B];
    <D.97693>:
    this->D.86022._vptr.Object = iftmp.37;
    if (2 == 0) goto <D.97695>; else goto <D.97696>;
    <D.97695>:
    D.97697 = this->D.86022._vptr.Object;
    D.97698 = D.97697 + 18446744073709551592;
    D.97699 = MEM[(long int *)D.97698];
    iftmp.38 = (sizetype) D.97699;
    goto <D.97700>;
    <D.97696>:
    iftmp.38 = 8;
    <D.97700>:
    D.97701 = this + iftmp.38;
    if (2 == 0) goto <D.97703>; else goto <D.97704>;
    <D.97703>:
    iftmp.39 = MEM[(const void * *)0B + 24B];
    goto <D.97705>;
    <D.97704>:
    iftmp.39 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 112B];
    <D.97705>:
    D.97701->_vptr.ObjectBase = iftmp.39;
    try
      {
        try
          {
            try
              {
                try
                  {

                  }
                finally
                  {
                    if (2 == 0) goto <D.97707>; else goto <D.97708>;
                    <D.97707>:
                    iftmp.40 = 8B;
                    goto <D.97709>;
                    <D.97708>:
                    iftmp.40 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
                    <D.97709>:
                    D.97710 = &this->D.86022;
                    Glib::Object::~Object (D.97710, iftmp.40);
                  }
              }
            finally
              {
                D.97711 = 2;
                if (D.97711 != 0) goto <D.97712>; else goto <D.97713>;
                <D.97712>:
                if (2 == 0) goto <D.97715>; else goto <D.97716>;
                <D.97715>:
                iftmp.41 = 32B;
                goto <D.97717>;
                <D.97716>:
                iftmp.41 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
                <D.97717>:
                D.97718 = &this->D.86024;
                Glib::ObjectBase::~ObjectBase (D.97718, iftmp.41);
                goto <D.97719>;
                <D.97713>:
                <D.97719>:
              }
          }
        finally
          {
            D.97711 = 2;
            if (D.97711 != 0) goto <D.97720>; else goto <D.97721>;
            <D.97720>:
            D.97722 = &this->D.86025;
            sigc::trackable::~trackable (D.97722);
            goto <D.97723>;
            <D.97721>:
            <D.97723>:
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.96685>:
  D.97724 = 0;
  if (D.97724 != 0) goto <D.97725>; else goto <D.97726>;
  <D.97725>:
  operator delete (this);
  goto <D.97727>;
  <D.97726>:
  <D.97727>:
}


virtual Gio::MenuAttributeIter::~MenuAttributeIter() (struct MenuAttributeIter * const this)
{
  Gio::MenuAttributeIter::~MenuAttributeIter (this);
  <D.96690>:
  operator delete (this);
}


static GType Gio::MenuAttributeIter::get_type() ()
{
  GType D.97740;
  const struct Class & D.97741;

  D.97741 = Gio::MenuAttributeIter_Class::init (&menuattributeiter_class_);
  D.97740 = Glib::Class::get_type (D.97741);
  return D.97740;
}


GType Glib::Class::get_type() const (const struct Class * const this)
{
  GType D.97744;

  D.97744 = this->gtype_;
  return D.97744;
}


static GType Gio::MenuAttributeIter::get_base_type() ()
{
  GType D.97746;

  D.97746 = g_menu_attribute_iter_get_type ();
  return D.97746;
}


Gio::MenuAttributeIter::MenuAttributeIter() (struct MenuAttributeIter * const this, const void * * __vtt_parm)
{
  struct trackable * D.97751;
  const void * * iftmp.42;
  struct ObjectBase * D.97759;
  struct ConstructParams D.96708;
  const struct Class & D.97761;
  const void * * iftmp.43;
  struct Object * D.97766;
  int (*__vtbl_ptr_type) () * iftmp.44;
  sizetype iftmp.45;
  int (*__vtbl_ptr_type) () * D.97774;
  int (*__vtbl_ptr_type) () * D.97775;
  long int D.97776;
  struct ObjectBase * D.97778;
  int (*__vtbl_ptr_type) () * iftmp.46;
  const void * * iftmp.47;
  const void * * iftmp.48;

  if (0 != 0) goto <D.97749>; else goto <D.97750>;
  <D.97749>:
  D.97751 = &this->D.86025;
  sigc::trackable::trackable (D.97751);
  goto <D.97752>;
  <D.97750>:
  <D.97752>:
  try
    {
      if (0 != 0) goto <D.97753>; else goto <D.97754>;
      <D.97753>:
      if (0 == 0) goto <D.97756>; else goto <D.97757>;
      <D.97756>:
      iftmp.42 = __vtt_parm + 32;
      goto <D.97758>;
      <D.97757>:
      iftmp.42 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
      <D.97758>:
      D.97759 = &this->D.86024;
      Glib::ObjectBase::ObjectBase (D.97759, iftmp.42, 0B);
      goto <D.97760>;
      <D.97754>:
      <D.97760>:
      try
        {
          D.97761 = Gio::MenuAttributeIter_Class::init (&menuattributeiter_class_);
          Glib::ConstructParams::ConstructParams (&D.96708, D.97761);
          try
            {
              if (0 == 0) goto <D.97763>; else goto <D.97764>;
              <D.97763>:
              iftmp.43 = __vtt_parm + 8;
              goto <D.97765>;
              <D.97764>:
              iftmp.43 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
              <D.97765>:
              D.97766 = &this->D.86022;
              Glib::Object::Object (D.97766, iftmp.43, &D.96708);
            }
          finally
            {
              Glib::ConstructParams::~ConstructParams (&D.96708);
              D.96708 = {CLOBBER};
            }
          try
            {
              if (0 == 0) goto <D.97768>; else goto <D.97769>;
              <D.97768>:
              iftmp.44 = *__vtt_parm;
              goto <D.97770>;
              <D.97769>:
              iftmp.44 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 32B];
              <D.97770>:
              this->D.86022._vptr.Object = iftmp.44;
              if (0 == 0) goto <D.97772>; else goto <D.97773>;
              <D.97772>:
              D.97774 = this->D.86022._vptr.Object;
              D.97775 = D.97774 + 18446744073709551592;
              D.97776 = MEM[(long int *)D.97775];
              iftmp.45 = (sizetype) D.97776;
              goto <D.97777>;
              <D.97773>:
              iftmp.45 = 8;
              <D.97777>:
              D.97778 = this + iftmp.45;
              if (0 == 0) goto <D.97780>; else goto <D.97781>;
              <D.97780>:
              iftmp.46 = MEM[(const void * *)__vtt_parm + 24B];
              goto <D.97782>;
              <D.97781>:
              iftmp.46 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 112B];
              <D.97782>:
              D.97778->_vptr.ObjectBase = iftmp.46;
            }
          catch
            {
              if (0 == 0) goto <D.97784>; else goto <D.97785>;
              <D.97784>:
              iftmp.47 = __vtt_parm + 8;
              goto <D.97786>;
              <D.97785>:
              iftmp.47 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
              <D.97786>:
              D.97766 = &this->D.86022;
              Glib::Object::~Object (D.97766, iftmp.47);
            }
        }
      catch
        {
          if (0 != 0) goto <D.97787>; else goto <D.97788>;
          <D.97787>:
          if (0 == 0) goto <D.97790>; else goto <D.97791>;
          <D.97790>:
          iftmp.48 = __vtt_parm + 32;
          goto <D.97792>;
          <D.97791>:
          iftmp.48 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
          <D.97792>:
          D.97759 = &this->D.86024;
          Glib::ObjectBase::~ObjectBase (D.97759, iftmp.48);
          goto <D.97793>;
          <D.97788>:
          <D.97793>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.97794>; else goto <D.97795>;
      <D.97794>:
      D.97751 = &this->D.86025;
      sigc::trackable::~trackable (D.97751);
      goto <D.97796>;
      <D.97795>:
      <D.97796>:
    }
}


Gio::MenuAttributeIter::MenuAttributeIter() (struct MenuAttributeIter * const this)
{
  struct trackable * D.97803;
  const void * * iftmp.49;
  struct ObjectBase * D.97811;
  struct ConstructParams D.96710;
  const struct Class & D.97813;
  const void * * iftmp.50;
  struct Object * D.97818;
  int (*__vtbl_ptr_type) () * iftmp.51;
  const void * * D.97822;
  sizetype iftmp.52;
  int (*__vtbl_ptr_type) () * D.97827;
  int (*__vtbl_ptr_type) () * D.97828;
  long int D.97829;
  struct ObjectBase * D.97831;
  int (*__vtbl_ptr_type) () * iftmp.53;
  const void * * iftmp.54;
  const void * * iftmp.55;

  if (1 != 0) goto <D.97801>; else goto <D.97802>;
  <D.97801>:
  D.97803 = &this->D.86025;
  sigc::trackable::trackable (D.97803);
  goto <D.97804>;
  <D.97802>:
  <D.97804>:
  try
    {
      if (1 != 0) goto <D.97805>; else goto <D.97806>;
      <D.97805>:
      if (1 == 0) goto <D.97808>; else goto <D.97809>;
      <D.97808>:
      iftmp.49 = 32B;
      goto <D.97810>;
      <D.97809>:
      iftmp.49 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
      <D.97810>:
      D.97811 = &this->D.86024;
      Glib::ObjectBase::ObjectBase (D.97811, iftmp.49, 0B);
      goto <D.97812>;
      <D.97806>:
      <D.97812>:
      try
        {
          D.97813 = Gio::MenuAttributeIter_Class::init (&menuattributeiter_class_);
          Glib::ConstructParams::ConstructParams (&D.96710, D.97813);
          try
            {
              if (1 == 0) goto <D.97815>; else goto <D.97816>;
              <D.97815>:
              iftmp.50 = 8B;
              goto <D.97817>;
              <D.97816>:
              iftmp.50 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
              <D.97817>:
              D.97818 = &this->D.86022;
              Glib::Object::Object (D.97818, iftmp.50, &D.96710);
            }
          finally
            {
              Glib::ConstructParams::~ConstructParams (&D.96710);
              D.96710 = {CLOBBER};
            }
          try
            {
              if (1 == 0) goto <D.97820>; else goto <D.97821>;
              <D.97820>:
              D.97822 = 0B;
              iftmp.51 = *D.97822;
              goto <D.97823>;
              <D.97821>:
              iftmp.51 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 32B];
              <D.97823>:
              this->D.86022._vptr.Object = iftmp.51;
              if (1 == 0) goto <D.97825>; else goto <D.97826>;
              <D.97825>:
              D.97827 = this->D.86022._vptr.Object;
              D.97828 = D.97827 + 18446744073709551592;
              D.97829 = MEM[(long int *)D.97828];
              iftmp.52 = (sizetype) D.97829;
              goto <D.97830>;
              <D.97826>:
              iftmp.52 = 8;
              <D.97830>:
              D.97831 = this + iftmp.52;
              if (1 == 0) goto <D.97833>; else goto <D.97834>;
              <D.97833>:
              iftmp.53 = MEM[(const void * *)0B + 24B];
              goto <D.97835>;
              <D.97834>:
              iftmp.53 = &MEM[(void *)&_ZTVN3Gio17MenuAttributeIterE + 112B];
              <D.97835>:
              D.97831->_vptr.ObjectBase = iftmp.53;
            }
          catch
            {
              if (1 == 0) goto <D.97837>; else goto <D.97838>;
              <D.97837>:
              iftmp.54 = 8B;
              goto <D.97839>;
              <D.97838>:
              iftmp.54 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 8B];
              <D.97839>:
              D.97818 = &this->D.86022;
              Glib::Object::~Object (D.97818, iftmp.54);
            }
        }
      catch
        {
          if (1 != 0) goto <D.97840>; else goto <D.97841>;
          <D.97840>:
          if (1 == 0) goto <D.97843>; else goto <D.97844>;
          <D.97843>:
          iftmp.55 = 32B;
          goto <D.97845>;
          <D.97844>:
          iftmp.55 = &MEM[(void *)&_ZTTN3Gio17MenuAttributeIterE + 32B];
          <D.97845>:
          D.97811 = &this->D.86024;
          Glib::ObjectBase::~ObjectBase (D.97811, iftmp.55);
          goto <D.97846>;
          <D.97841>:
          <D.97846>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.97847>; else goto <D.97848>;
      <D.97847>:
      D.97803 = &this->D.86025;
      sigc::trackable::~trackable (D.97803);
      goto <D.97849>;
      <D.97848>:
      <D.97849>:
    }
}


Glib::ustring Gio::MenuAttributeIter::get_name() const (const struct MenuAttributeIter * const this)
{
  const struct GMenuAttributeIter * D.97855;
  const gchar * D.97856;

  D.97855 = Gio::MenuAttributeIter::gobj (this);
  D.97856 = g_menu_attribute_iter_get_name (D.97855);
  *<retval> = Glib::convert_const_gchar_ptr_to_ustring (D.97856); [return slot optimization]
  return <retval>;
}


const GMenuAttributeIter* Gio::MenuAttributeIter::gobj() const (const struct MenuAttributeIter * const this)
{
  const struct GMenuAttributeIter * D.97859;
  int (*__vtbl_ptr_type) () * D.97860;
  int (*__vtbl_ptr_type) () * D.97861;
  long int D.97862;
  sizetype D.97863;
  const struct ObjectBase * D.97864;

  D.97860 = this->D.86022._vptr.Object;
  D.97861 = D.97860 + 18446744073709551592;
  D.97862 = MEM[(long int *)D.97861];
  D.97863 = (sizetype) D.97862;
  D.97864 = this + D.97863;
  D.97859 = D.97864->gobject_;
  return D.97859;
}


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

  if (str != 0B) goto <D.97867>; else goto <D.97868>;
  <D.97867>:
  D.97869 = <retval>;
  Glib::ustring::ustring (D.97869, str);
  goto <D.97870>;
  <D.97868>:
  D.97869 = <retval>;
  Glib::ustring::ustring (D.97869);
  <D.97870>:
  return <retval>;
}


Glib::VariantBase Gio::MenuAttributeIter::get_value() (struct MenuAttributeIter * const this)
{
  struct GMenuAttributeIter * D.97873;
  struct GVariant * D.97874;

  D.97873 = Gio::MenuAttributeIter::gobj (this);
  D.97874 = g_menu_attribute_iter_get_value (D.97873);
  *<retval> = Glib::wrap (D.97874, 0); [return slot optimization]
  return <retval>;
}


const Glib::VariantBase Gio::MenuAttributeIter::get_value() const (const struct MenuAttributeIter * const this)
{
  *<retval> = Gio::MenuAttributeIter::get_value (this); [return slot optimization]
  return <retval>;
}


bool Gio::MenuAttributeIter::next() (struct MenuAttributeIter * const this)
{
  bool D.97879;
  struct GMenuAttributeIter * D.97880;
  int D.97881;

  D.97880 = Gio::MenuAttributeIter::gobj (this);
  D.97881 = g_menu_attribute_iter_next (D.97880);
  D.97879 = D.97881 != 0;
  return D.97879;
}


