Glib::RefPtr<Gio::FilenameCompleter> Glib::wrap(GFilenameCompleter*, bool) (struct GFilenameCompleter * object, bool take_copy)
{
  struct FilenameCompleter * iftmp.0;
  int D.103210;
  struct ObjectBase * D.103211;

  D.103210 = (int) take_copy;
  D.103211 = Glib::wrap_auto (object, D.103210);
  if (D.103211 == 0B) goto <D.103212>; else goto <D.103213>;
  <D.103212>:
  iftmp.0 = 0B;
  goto <D.103214>;
  <D.103213>:
  iftmp.0 = __dynamic_cast (D.103211, &_ZTIN4Glib10ObjectBaseE, &_ZTIN3Gio17FilenameCompleterE, -1);
  <D.103214>:
  Glib::RefPtr<Gio::FilenameCompleter>::RefPtr (<retval>, iftmp.0);
  return <retval>;
}


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


const Glib::Class& Gio::FilenameCompleter_Class::init() (struct FilenameCompleter_Class * const this)
{
  long unsigned int D.103217;
  long unsigned int D.103220;
  struct Class * D.103221;
  const struct Class & D.103223;

  D.103217 = this->D.96497.gtype_;
  if (D.103217 == 0) goto <D.103218>; else goto <D.103219>;
  <D.103218>:
  this->D.96497.class_init_func_ = class_init_function;
  D.103220 = g_filename_completer_get_type ();
  D.103221 = &this->D.96497;
  Glib::Class::register_derived_type (D.103221, D.103220);
  goto <D.103222>;
  <D.103219>:
  <D.103222>:
  D.103223 = &this->D.96497;
  return D.103223;
}


static void Gio::FilenameCompleter_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);
  klass->got_completion_data = got_completion_data_callback;
}


static void Gio::FilenameCompleter_Class::got_completion_data_callback(GFilenameCompleter*) (struct GFilenameCompleter * self)
{
  bool retval.1;
  bool iftmp.2;
  bool D.103231;
  struct CppObjectType * const iftmp.3;
  int (*__vtbl_ptr_type) () * D.103241;
  int (*__vtbl_ptr_type) () * D.103242;
  int (*__vtbl_ptr_type) () D.103243;
  void * D.103244;
  struct GTypeClass * D.103247;
  void (*<T107c2>) (struct GFilenameCompleter *) D.103250;
  struct ObjectBase * const obj_base;
  struct BaseClassType * const base;

  obj_base = Glib::ObjectBase::_get_current_wrapper (self);
  {
    if (obj_base != 0B) goto <D.103230>; else goto <D.103228>;
    <D.103230>:
    D.103231 = Glib::ObjectBase::is_derived_ (obj_base);
    if (D.103231 != 0) goto <D.103232>; else goto <D.103228>;
    <D.103232>:
    iftmp.2 = 1;
    goto <D.103229>;
    <D.103228>:
    iftmp.2 = 0;
    <D.103229>:
    retval.1 = iftmp.2;
    if (retval.1 != 0) goto <D.103233>; else goto <D.103234>;
    <D.103233>:
    {
      struct CppObjectType * const obj;

      if (obj_base == 0B) goto <D.103236>; else goto <D.103237>;
      <D.103236>:
      iftmp.3 = 0B;
      goto <D.103238>;
      <D.103237>:
      iftmp.3 = __dynamic_cast (obj_base, &_ZTIN4Glib10ObjectBaseE, &_ZTIN3Gio17FilenameCompleterE, -1);
      <D.103238>:
      obj = iftmp.3;
      if (obj != 0B) goto <D.103239>; else goto <D.103240>;
      <D.103239>:
      try
        {
          D.103241 = obj->D.86027._vptr.Object;
          D.103242 = D.103241 + 16;
          D.103243 = *D.103242;
          OBJ_TYPE_REF(D.103243;(struct FilenameCompleter)obj->2) (obj);
          return;
        }
      catch
        {
          catch (NULL)
            {
              try
                {
                  D.103244 = __builtin_eh_pointer (0);
                  __cxa_begin_catch (D.103244);
                  Glib::exception_handlers_invoke ();
                }
              finally
                {
                  __cxa_end_catch ();
                }
            }
        }
      goto <D.103245>;
      <D.103240>:
      <D.103245>:
    }
    goto <D.103246>;
    <D.103234>:
    <D.103246>:
  }
  D.103247 = MEM[(struct GTypeInstance *)self].g_class;
  base = g_type_class_peek_parent (D.103247);
  if (base != 0B) goto <D.103248>; else goto <D.103249>;
  <D.103248>:
  D.103250 = base->got_completion_data;
  if (D.103250 != 0B) goto <D.103251>; else goto <D.103252>;
  <D.103251>:
  D.103250 = base->got_completion_data;
  D.103250 (self);
  goto <D.103253>;
  <D.103252>:
  <D.103253>:
  <D.103249>:
}


static Glib::ObjectBase* Gio::FilenameCompleter_Class::wrap_new(GObject*) (struct GObject * object)
{
  struct ObjectBase * D.103262;
  struct ObjectBase * iftmp.4;
  void * D.102187;
  void * D.103264;
  int (*__vtbl_ptr_type) () * D.103267;
  int (*__vtbl_ptr_type) () * D.103268;
  long int D.103269;
  sizetype D.103270;

  D.102187 = operator new (48);
  try
    {
      Gio::FilenameCompleter::FilenameCompleter (D.102187, object);
    }
  catch
    {
      operator delete (D.102187);
    }
  D.103264 = D.102187;
  if (D.103264 != 0B) goto <D.103265>; else goto <D.103266>;
  <D.103265>:
  D.103267 = MEM[(struct FilenameCompleter *)D.103264].D.86027._vptr.Object;
  D.103268 = D.103267 + 18446744073709551592;
  D.103269 = MEM[(long int *)D.103268];
  D.103270 = (sizetype) D.103269;
  iftmp.4 = D.103264 + D.103270;
  goto <D.103271>;
  <D.103266>:
  iftmp.4 = 0B;
  <D.103271>:
  D.103262 = iftmp.4;
  return D.103262;
}


GFilenameCompleter* Gio::FilenameCompleter::gobj_copy() (struct FilenameCompleter * const this)
{
  int (*__vtbl_ptr_type) () * D.103275;
  int (*__vtbl_ptr_type) () * D.103276;
  long int D.103277;
  sizetype D.103278;
  struct ObjectBase * D.103279;
  int (*__vtbl_ptr_type) () * D.103280;
  int (*__vtbl_ptr_type) () * D.103281;
  int (*__vtbl_ptr_type) () D.103282;
  struct GFilenameCompleter * D.103283;

  D.103275 = this->D.86027._vptr.Object;
  D.103276 = D.103275 + 18446744073709551592;
  D.103277 = MEM[(long int *)D.103276];
  D.103278 = (sizetype) D.103277;
  D.103279 = this + D.103278;
  D.103275 = this->D.86027._vptr.Object;
  D.103276 = D.103275 + 18446744073709551592;
  D.103277 = MEM[(long int *)D.103276];
  D.103278 = (sizetype) D.103277;
  D.103279 = this + D.103278;
  D.103280 = D.103279->_vptr.ObjectBase;
  D.103281 = D.103280 + 16;
  D.103282 = *D.103281;
  D.103275 = this->D.86027._vptr.Object;
  D.103276 = D.103275 + 18446744073709551592;
  D.103277 = MEM[(long int *)D.103276];
  D.103278 = (sizetype) D.103277;
  D.103279 = this + D.103278;
  OBJ_TYPE_REF(D.103282;(const struct ObjectBase)D.103279->2) (D.103279);
  D.103283 = Gio::FilenameCompleter::gobj (this);
  return D.103283;
}


GFilenameCompleter* Gio::FilenameCompleter::gobj() (struct FilenameCompleter * const this)
{
  struct GFilenameCompleter * D.103285;
  int (*__vtbl_ptr_type) () * D.103286;
  int (*__vtbl_ptr_type) () * D.103287;
  long int D.103288;
  sizetype D.103289;
  struct ObjectBase * D.103290;

  D.103286 = this->D.86027._vptr.Object;
  D.103287 = D.103286 + 18446744073709551592;
  D.103288 = MEM[(long int *)D.103287];
  D.103289 = (sizetype) D.103288;
  D.103290 = this + D.103289;
  D.103285 = D.103290->gobject_;
  return D.103285;
}


Gio::FilenameCompleter::FilenameCompleter(const Glib::ConstructParams&) (struct FilenameCompleter * const this, const void * * __vtt_parm, const struct ConstructParams & construct_params)
{
  struct trackable * D.103294;
  const void * * iftmp.5;
  struct ObjectBase * D.103302;
  const void * * iftmp.6;
  struct Object * D.103308;
  int (*__vtbl_ptr_type) () * iftmp.7;
  sizetype iftmp.8;
  int (*__vtbl_ptr_type) () * D.103316;
  int (*__vtbl_ptr_type) () * D.103317;
  long int D.103318;
  struct ObjectBase * D.103320;
  int (*__vtbl_ptr_type) () * iftmp.9;
  const void * * iftmp.10;
  const void * * iftmp.11;

  if (0 != 0) goto <D.103292>; else goto <D.103293>;
  <D.103292>:
  D.103294 = &this->D.86030;
  sigc::trackable::trackable (D.103294);
  goto <D.103295>;
  <D.103293>:
  <D.103295>:
  try
    {
      if (0 != 0) goto <D.103296>; else goto <D.103297>;
      <D.103296>:
      if (0 == 0) goto <D.103299>; else goto <D.103300>;
      <D.103299>:
      iftmp.5 = __vtt_parm + 32;
      goto <D.103301>;
      <D.103300>:
      iftmp.5 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
      <D.103301>:
      D.103302 = &this->D.86029;
      Glib::ObjectBase::ObjectBase (D.103302, iftmp.5);
      goto <D.103303>;
      <D.103297>:
      <D.103303>:
      try
        {
          if (0 == 0) goto <D.103305>; else goto <D.103306>;
          <D.103305>:
          iftmp.6 = __vtt_parm + 8;
          goto <D.103307>;
          <D.103306>:
          iftmp.6 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
          <D.103307>:
          D.103308 = &this->D.86027;
          Glib::Object::Object (D.103308, iftmp.6, construct_params);
          try
            {
              if (0 == 0) goto <D.103310>; else goto <D.103311>;
              <D.103310>:
              iftmp.7 = *__vtt_parm;
              goto <D.103312>;
              <D.103311>:
              iftmp.7 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 32B];
              <D.103312>:
              this->D.86027._vptr.Object = iftmp.7;
              if (0 == 0) goto <D.103314>; else goto <D.103315>;
              <D.103314>:
              D.103316 = this->D.86027._vptr.Object;
              D.103317 = D.103316 + 18446744073709551592;
              D.103318 = MEM[(long int *)D.103317];
              iftmp.8 = (sizetype) D.103318;
              goto <D.103319>;
              <D.103315>:
              iftmp.8 = 8;
              <D.103319>:
              D.103320 = this + iftmp.8;
              if (0 == 0) goto <D.103322>; else goto <D.103323>;
              <D.103322>:
              iftmp.9 = MEM[(const void * *)__vtt_parm + 24B];
              goto <D.103324>;
              <D.103323>:
              iftmp.9 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 120B];
              <D.103324>:
              D.103320->_vptr.ObjectBase = iftmp.9;
            }
          catch
            {
              if (0 == 0) goto <D.103326>; else goto <D.103327>;
              <D.103326>:
              iftmp.10 = __vtt_parm + 8;
              goto <D.103328>;
              <D.103327>:
              iftmp.10 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
              <D.103328>:
              D.103308 = &this->D.86027;
              Glib::Object::~Object (D.103308, iftmp.10);
            }
        }
      catch
        {
          if (0 != 0) goto <D.103329>; else goto <D.103330>;
          <D.103329>:
          if (0 == 0) goto <D.103332>; else goto <D.103333>;
          <D.103332>:
          iftmp.11 = __vtt_parm + 32;
          goto <D.103334>;
          <D.103333>:
          iftmp.11 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
          <D.103334>:
          D.103302 = &this->D.86029;
          Glib::ObjectBase::~ObjectBase (D.103302, iftmp.11);
          goto <D.103335>;
          <D.103330>:
          <D.103335>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.103336>; else goto <D.103337>;
      <D.103336>:
      D.103294 = &this->D.86030;
      sigc::trackable::~trackable (D.103294);
      goto <D.103338>;
      <D.103337>:
      <D.103338>:
    }
}


Gio::FilenameCompleter::FilenameCompleter(const Glib::ConstructParams&) (struct FilenameCompleter * const this, const struct ConstructParams & construct_params)
{
  struct trackable * D.103343;
  const void * * iftmp.12;
  struct ObjectBase * D.103351;
  const void * * iftmp.13;
  struct Object * D.103357;
  int (*__vtbl_ptr_type) () * iftmp.14;
  const void * * D.103361;
  sizetype iftmp.15;
  int (*__vtbl_ptr_type) () * D.103366;
  int (*__vtbl_ptr_type) () * D.103367;
  long int D.103368;
  struct ObjectBase * D.103370;
  int (*__vtbl_ptr_type) () * iftmp.16;
  const void * * iftmp.17;
  const void * * iftmp.18;

  if (1 != 0) goto <D.103341>; else goto <D.103342>;
  <D.103341>:
  D.103343 = &this->D.86030;
  sigc::trackable::trackable (D.103343);
  goto <D.103344>;
  <D.103342>:
  <D.103344>:
  try
    {
      if (1 != 0) goto <D.103345>; else goto <D.103346>;
      <D.103345>:
      if (1 == 0) goto <D.103348>; else goto <D.103349>;
      <D.103348>:
      iftmp.12 = 32B;
      goto <D.103350>;
      <D.103349>:
      iftmp.12 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
      <D.103350>:
      D.103351 = &this->D.86029;
      Glib::ObjectBase::ObjectBase (D.103351, iftmp.12);
      goto <D.103352>;
      <D.103346>:
      <D.103352>:
      try
        {
          if (1 == 0) goto <D.103354>; else goto <D.103355>;
          <D.103354>:
          iftmp.13 = 8B;
          goto <D.103356>;
          <D.103355>:
          iftmp.13 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
          <D.103356>:
          D.103357 = &this->D.86027;
          Glib::Object::Object (D.103357, iftmp.13, construct_params);
          try
            {
              if (1 == 0) goto <D.103359>; else goto <D.103360>;
              <D.103359>:
              D.103361 = 0B;
              iftmp.14 = *D.103361;
              goto <D.103362>;
              <D.103360>:
              iftmp.14 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 32B];
              <D.103362>:
              this->D.86027._vptr.Object = iftmp.14;
              if (1 == 0) goto <D.103364>; else goto <D.103365>;
              <D.103364>:
              D.103366 = this->D.86027._vptr.Object;
              D.103367 = D.103366 + 18446744073709551592;
              D.103368 = MEM[(long int *)D.103367];
              iftmp.15 = (sizetype) D.103368;
              goto <D.103369>;
              <D.103365>:
              iftmp.15 = 8;
              <D.103369>:
              D.103370 = this + iftmp.15;
              if (1 == 0) goto <D.103372>; else goto <D.103373>;
              <D.103372>:
              iftmp.16 = MEM[(const void * *)0B + 24B];
              goto <D.103374>;
              <D.103373>:
              iftmp.16 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 120B];
              <D.103374>:
              D.103370->_vptr.ObjectBase = iftmp.16;
            }
          catch
            {
              if (1 == 0) goto <D.103376>; else goto <D.103377>;
              <D.103376>:
              iftmp.17 = 8B;
              goto <D.103378>;
              <D.103377>:
              iftmp.17 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
              <D.103378>:
              D.103357 = &this->D.86027;
              Glib::Object::~Object (D.103357, iftmp.17);
            }
        }
      catch
        {
          if (1 != 0) goto <D.103379>; else goto <D.103380>;
          <D.103379>:
          if (1 == 0) goto <D.103382>; else goto <D.103383>;
          <D.103382>:
          iftmp.18 = 32B;
          goto <D.103384>;
          <D.103383>:
          iftmp.18 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
          <D.103384>:
          D.103351 = &this->D.86029;
          Glib::ObjectBase::~ObjectBase (D.103351, iftmp.18);
          goto <D.103385>;
          <D.103380>:
          <D.103385>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.103386>; else goto <D.103387>;
      <D.103386>:
      D.103343 = &this->D.86030;
      sigc::trackable::~trackable (D.103343);
      goto <D.103388>;
      <D.103387>:
      <D.103388>:
    }
}


Gio::FilenameCompleter::FilenameCompleter(GFilenameCompleter*) (struct FilenameCompleter * const this, const void * * __vtt_parm, struct GFilenameCompleter * castitem)
{
  struct trackable * D.103393;
  const void * * iftmp.19;
  struct ObjectBase * D.103401;
  const void * * iftmp.20;
  struct Object * D.103407;
  int (*__vtbl_ptr_type) () * iftmp.21;
  sizetype iftmp.22;
  int (*__vtbl_ptr_type) () * D.103415;
  int (*__vtbl_ptr_type) () * D.103416;
  long int D.103417;
  struct ObjectBase * D.103419;
  int (*__vtbl_ptr_type) () * iftmp.23;
  const void * * iftmp.24;
  const void * * iftmp.25;

  if (0 != 0) goto <D.103391>; else goto <D.103392>;
  <D.103391>:
  D.103393 = &this->D.86030;
  sigc::trackable::trackable (D.103393);
  goto <D.103394>;
  <D.103392>:
  <D.103394>:
  try
    {
      if (0 != 0) goto <D.103395>; else goto <D.103396>;
      <D.103395>:
      if (0 == 0) goto <D.103398>; else goto <D.103399>;
      <D.103398>:
      iftmp.19 = __vtt_parm + 32;
      goto <D.103400>;
      <D.103399>:
      iftmp.19 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
      <D.103400>:
      D.103401 = &this->D.86029;
      Glib::ObjectBase::ObjectBase (D.103401, iftmp.19);
      goto <D.103402>;
      <D.103396>:
      <D.103402>:
      try
        {
          if (0 == 0) goto <D.103404>; else goto <D.103405>;
          <D.103404>:
          iftmp.20 = __vtt_parm + 8;
          goto <D.103406>;
          <D.103405>:
          iftmp.20 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
          <D.103406>:
          D.103407 = &this->D.86027;
          Glib::Object::Object (D.103407, iftmp.20, castitem);
          try
            {
              if (0 == 0) goto <D.103409>; else goto <D.103410>;
              <D.103409>:
              iftmp.21 = *__vtt_parm;
              goto <D.103411>;
              <D.103410>:
              iftmp.21 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 32B];
              <D.103411>:
              this->D.86027._vptr.Object = iftmp.21;
              if (0 == 0) goto <D.103413>; else goto <D.103414>;
              <D.103413>:
              D.103415 = this->D.86027._vptr.Object;
              D.103416 = D.103415 + 18446744073709551592;
              D.103417 = MEM[(long int *)D.103416];
              iftmp.22 = (sizetype) D.103417;
              goto <D.103418>;
              <D.103414>:
              iftmp.22 = 8;
              <D.103418>:
              D.103419 = this + iftmp.22;
              if (0 == 0) goto <D.103421>; else goto <D.103422>;
              <D.103421>:
              iftmp.23 = MEM[(const void * *)__vtt_parm + 24B];
              goto <D.103423>;
              <D.103422>:
              iftmp.23 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 120B];
              <D.103423>:
              D.103419->_vptr.ObjectBase = iftmp.23;
            }
          catch
            {
              if (0 == 0) goto <D.103425>; else goto <D.103426>;
              <D.103425>:
              iftmp.24 = __vtt_parm + 8;
              goto <D.103427>;
              <D.103426>:
              iftmp.24 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
              <D.103427>:
              D.103407 = &this->D.86027;
              Glib::Object::~Object (D.103407, iftmp.24);
            }
        }
      catch
        {
          if (0 != 0) goto <D.103428>; else goto <D.103429>;
          <D.103428>:
          if (0 == 0) goto <D.103431>; else goto <D.103432>;
          <D.103431>:
          iftmp.25 = __vtt_parm + 32;
          goto <D.103433>;
          <D.103432>:
          iftmp.25 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
          <D.103433>:
          D.103401 = &this->D.86029;
          Glib::ObjectBase::~ObjectBase (D.103401, iftmp.25);
          goto <D.103434>;
          <D.103429>:
          <D.103434>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.103435>; else goto <D.103436>;
      <D.103435>:
      D.103393 = &this->D.86030;
      sigc::trackable::~trackable (D.103393);
      goto <D.103437>;
      <D.103436>:
      <D.103437>:
    }
}


Gio::FilenameCompleter::FilenameCompleter(GFilenameCompleter*) (struct FilenameCompleter * const this, struct GFilenameCompleter * castitem)
{
  struct trackable * D.103442;
  const void * * iftmp.26;
  struct ObjectBase * D.103450;
  const void * * iftmp.27;
  struct Object * D.103456;
  int (*__vtbl_ptr_type) () * iftmp.28;
  const void * * D.103460;
  sizetype iftmp.29;
  int (*__vtbl_ptr_type) () * D.103465;
  int (*__vtbl_ptr_type) () * D.103466;
  long int D.103467;
  struct ObjectBase * D.103469;
  int (*__vtbl_ptr_type) () * iftmp.30;
  const void * * iftmp.31;
  const void * * iftmp.32;

  if (1 != 0) goto <D.103440>; else goto <D.103441>;
  <D.103440>:
  D.103442 = &this->D.86030;
  sigc::trackable::trackable (D.103442);
  goto <D.103443>;
  <D.103441>:
  <D.103443>:
  try
    {
      if (1 != 0) goto <D.103444>; else goto <D.103445>;
      <D.103444>:
      if (1 == 0) goto <D.103447>; else goto <D.103448>;
      <D.103447>:
      iftmp.26 = 32B;
      goto <D.103449>;
      <D.103448>:
      iftmp.26 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
      <D.103449>:
      D.103450 = &this->D.86029;
      Glib::ObjectBase::ObjectBase (D.103450, iftmp.26);
      goto <D.103451>;
      <D.103445>:
      <D.103451>:
      try
        {
          if (1 == 0) goto <D.103453>; else goto <D.103454>;
          <D.103453>:
          iftmp.27 = 8B;
          goto <D.103455>;
          <D.103454>:
          iftmp.27 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
          <D.103455>:
          D.103456 = &this->D.86027;
          Glib::Object::Object (D.103456, iftmp.27, castitem);
          try
            {
              if (1 == 0) goto <D.103458>; else goto <D.103459>;
              <D.103458>:
              D.103460 = 0B;
              iftmp.28 = *D.103460;
              goto <D.103461>;
              <D.103459>:
              iftmp.28 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 32B];
              <D.103461>:
              this->D.86027._vptr.Object = iftmp.28;
              if (1 == 0) goto <D.103463>; else goto <D.103464>;
              <D.103463>:
              D.103465 = this->D.86027._vptr.Object;
              D.103466 = D.103465 + 18446744073709551592;
              D.103467 = MEM[(long int *)D.103466];
              iftmp.29 = (sizetype) D.103467;
              goto <D.103468>;
              <D.103464>:
              iftmp.29 = 8;
              <D.103468>:
              D.103469 = this + iftmp.29;
              if (1 == 0) goto <D.103471>; else goto <D.103472>;
              <D.103471>:
              iftmp.30 = MEM[(const void * *)0B + 24B];
              goto <D.103473>;
              <D.103472>:
              iftmp.30 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 120B];
              <D.103473>:
              D.103469->_vptr.ObjectBase = iftmp.30;
            }
          catch
            {
              if (1 == 0) goto <D.103475>; else goto <D.103476>;
              <D.103475>:
              iftmp.31 = 8B;
              goto <D.103477>;
              <D.103476>:
              iftmp.31 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
              <D.103477>:
              D.103456 = &this->D.86027;
              Glib::Object::~Object (D.103456, iftmp.31);
            }
        }
      catch
        {
          if (1 != 0) goto <D.103478>; else goto <D.103479>;
          <D.103478>:
          if (1 == 0) goto <D.103481>; else goto <D.103482>;
          <D.103481>:
          iftmp.32 = 32B;
          goto <D.103483>;
          <D.103482>:
          iftmp.32 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
          <D.103483>:
          D.103450 = &this->D.86029;
          Glib::ObjectBase::~ObjectBase (D.103450, iftmp.32);
          goto <D.103484>;
          <D.103479>:
          <D.103484>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.103485>; else goto <D.103486>;
      <D.103485>:
      D.103442 = &this->D.86030;
      sigc::trackable::~trackable (D.103442);
      goto <D.103487>;
      <D.103486>:
      <D.103487>:
    }
}


Gio::FilenameCompleter::~FilenameCompleter() (struct FilenameCompleter * const this, const void * * __vtt_parm)
{
  int (*__vtbl_ptr_type) () * iftmp.33;
  sizetype iftmp.34;
  int (*__vtbl_ptr_type) () * D.103497;
  int (*__vtbl_ptr_type) () * D.103498;
  long int D.103499;
  struct ObjectBase * D.103501;
  int (*__vtbl_ptr_type) () * iftmp.35;
  const void * * iftmp.36;
  struct Object * D.103510;
  int D.103511;
  const void * * iftmp.37;
  struct ObjectBase * D.103518;
  struct trackable * D.103522;
  int D.103524;

  {
    if (0 == 0) goto <D.103491>; else goto <D.103492>;
    <D.103491>:
    iftmp.33 = *__vtt_parm;
    goto <D.103493>;
    <D.103492>:
    iftmp.33 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 32B];
    <D.103493>:
    this->D.86027._vptr.Object = iftmp.33;
    if (0 == 0) goto <D.103495>; else goto <D.103496>;
    <D.103495>:
    D.103497 = this->D.86027._vptr.Object;
    D.103498 = D.103497 + 18446744073709551592;
    D.103499 = MEM[(long int *)D.103498];
    iftmp.34 = (sizetype) D.103499;
    goto <D.103500>;
    <D.103496>:
    iftmp.34 = 8;
    <D.103500>:
    D.103501 = this + iftmp.34;
    if (0 == 0) goto <D.103503>; else goto <D.103504>;
    <D.103503>:
    iftmp.35 = MEM[(const void * *)__vtt_parm + 24B];
    goto <D.103505>;
    <D.103504>:
    iftmp.35 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 120B];
    <D.103505>:
    D.103501->_vptr.ObjectBase = iftmp.35;
    try
      {
        try
          {
            try
              {
                try
                  {

                  }
                finally
                  {
                    if (0 == 0) goto <D.103507>; else goto <D.103508>;
                    <D.103507>:
                    iftmp.36 = __vtt_parm + 8;
                    goto <D.103509>;
                    <D.103508>:
                    iftmp.36 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
                    <D.103509>:
                    D.103510 = &this->D.86027;
                    Glib::Object::~Object (D.103510, iftmp.36);
                  }
              }
            finally
              {
                D.103511 = 0;
                if (D.103511 != 0) goto <D.103512>; else goto <D.103513>;
                <D.103512>:
                if (0 == 0) goto <D.103515>; else goto <D.103516>;
                <D.103515>:
                iftmp.37 = __vtt_parm + 32;
                goto <D.103517>;
                <D.103516>:
                iftmp.37 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
                <D.103517>:
                D.103518 = &this->D.86029;
                Glib::ObjectBase::~ObjectBase (D.103518, iftmp.37);
                goto <D.103519>;
                <D.103513>:
                <D.103519>:
              }
          }
        finally
          {
            D.103511 = 0;
            if (D.103511 != 0) goto <D.103520>; else goto <D.103521>;
            <D.103520>:
            D.103522 = &this->D.86030;
            sigc::trackable::~trackable (D.103522);
            goto <D.103523>;
            <D.103521>:
            <D.103523>:
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.102215>:
  D.103524 = 0;
  if (D.103524 != 0) goto <D.103525>; else goto <D.103526>;
  <D.103525>:
  operator delete (this);
  goto <D.103527>;
  <D.103526>:
  <D.103527>:
}


virtual Gio::FilenameCompleter::~FilenameCompleter() (struct FilenameCompleter * const this)
{
  int (*__vtbl_ptr_type) () * iftmp.38;
  const void * * D.103543;
  sizetype iftmp.39;
  int (*__vtbl_ptr_type) () * D.103548;
  int (*__vtbl_ptr_type) () * D.103549;
  long int D.103550;
  struct ObjectBase * D.103552;
  int (*__vtbl_ptr_type) () * iftmp.40;
  const void * * iftmp.41;
  struct Object * D.103561;
  int D.103562;
  const void * * iftmp.42;
  struct ObjectBase * D.103569;
  struct trackable * D.103573;
  int D.103575;

  {
    if (2 == 0) goto <D.103541>; else goto <D.103542>;
    <D.103541>:
    D.103543 = 0B;
    iftmp.38 = *D.103543;
    goto <D.103544>;
    <D.103542>:
    iftmp.38 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 32B];
    <D.103544>:
    this->D.86027._vptr.Object = iftmp.38;
    if (2 == 0) goto <D.103546>; else goto <D.103547>;
    <D.103546>:
    D.103548 = this->D.86027._vptr.Object;
    D.103549 = D.103548 + 18446744073709551592;
    D.103550 = MEM[(long int *)D.103549];
    iftmp.39 = (sizetype) D.103550;
    goto <D.103551>;
    <D.103547>:
    iftmp.39 = 8;
    <D.103551>:
    D.103552 = this + iftmp.39;
    if (2 == 0) goto <D.103554>; else goto <D.103555>;
    <D.103554>:
    iftmp.40 = MEM[(const void * *)0B + 24B];
    goto <D.103556>;
    <D.103555>:
    iftmp.40 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 120B];
    <D.103556>:
    D.103552->_vptr.ObjectBase = iftmp.40;
    try
      {
        try
          {
            try
              {
                try
                  {

                  }
                finally
                  {
                    if (2 == 0) goto <D.103558>; else goto <D.103559>;
                    <D.103558>:
                    iftmp.41 = 8B;
                    goto <D.103560>;
                    <D.103559>:
                    iftmp.41 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
                    <D.103560>:
                    D.103561 = &this->D.86027;
                    Glib::Object::~Object (D.103561, iftmp.41);
                  }
              }
            finally
              {
                D.103562 = 2;
                if (D.103562 != 0) goto <D.103563>; else goto <D.103564>;
                <D.103563>:
                if (2 == 0) goto <D.103566>; else goto <D.103567>;
                <D.103566>:
                iftmp.42 = 32B;
                goto <D.103568>;
                <D.103567>:
                iftmp.42 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
                <D.103568>:
                D.103569 = &this->D.86029;
                Glib::ObjectBase::~ObjectBase (D.103569, iftmp.42);
                goto <D.103570>;
                <D.103564>:
                <D.103570>:
              }
          }
        finally
          {
            D.103562 = 2;
            if (D.103562 != 0) goto <D.103571>; else goto <D.103572>;
            <D.103571>:
            D.103573 = &this->D.86030;
            sigc::trackable::~trackable (D.103573);
            goto <D.103574>;
            <D.103572>:
            <D.103574>:
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.102218>:
  D.103575 = 0;
  if (D.103575 != 0) goto <D.103576>; else goto <D.103577>;
  <D.103576>:
  operator delete (this);
  goto <D.103578>;
  <D.103577>:
  <D.103578>:
}


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


static GType Gio::FilenameCompleter::get_type() ()
{
  GType D.103591;
  const struct Class & D.103592;

  D.103592 = Gio::FilenameCompleter_Class::init (&filenamecompleter_class_);
  D.103591 = Glib::Class::get_type (D.103592);
  return D.103591;
}


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

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


static GType Gio::FilenameCompleter::get_base_type() ()
{
  GType D.103597;

  D.103597 = g_filename_completer_get_type ();
  return D.103597;
}


Gio::FilenameCompleter::FilenameCompleter() (struct FilenameCompleter * const this, const void * * __vtt_parm)
{
  struct trackable * D.103602;
  const void * * iftmp.43;
  struct ObjectBase * D.103610;
  struct ConstructParams D.102241;
  const struct Class & D.103612;
  const void * * iftmp.44;
  struct Object * D.103617;
  int (*__vtbl_ptr_type) () * iftmp.45;
  sizetype iftmp.46;
  int (*__vtbl_ptr_type) () * D.103625;
  int (*__vtbl_ptr_type) () * D.103626;
  long int D.103627;
  struct ObjectBase * D.103629;
  int (*__vtbl_ptr_type) () * iftmp.47;
  const void * * iftmp.48;
  const void * * iftmp.49;

  if (0 != 0) goto <D.103600>; else goto <D.103601>;
  <D.103600>:
  D.103602 = &this->D.86030;
  sigc::trackable::trackable (D.103602);
  goto <D.103603>;
  <D.103601>:
  <D.103603>:
  try
    {
      if (0 != 0) goto <D.103604>; else goto <D.103605>;
      <D.103604>:
      if (0 == 0) goto <D.103607>; else goto <D.103608>;
      <D.103607>:
      iftmp.43 = __vtt_parm + 32;
      goto <D.103609>;
      <D.103608>:
      iftmp.43 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
      <D.103609>:
      D.103610 = &this->D.86029;
      Glib::ObjectBase::ObjectBase (D.103610, iftmp.43, 0B);
      goto <D.103611>;
      <D.103605>:
      <D.103611>:
      try
        {
          D.103612 = Gio::FilenameCompleter_Class::init (&filenamecompleter_class_);
          Glib::ConstructParams::ConstructParams (&D.102241, D.103612);
          try
            {
              if (0 == 0) goto <D.103614>; else goto <D.103615>;
              <D.103614>:
              iftmp.44 = __vtt_parm + 8;
              goto <D.103616>;
              <D.103615>:
              iftmp.44 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
              <D.103616>:
              D.103617 = &this->D.86027;
              Glib::Object::Object (D.103617, iftmp.44, &D.102241);
            }
          finally
            {
              Glib::ConstructParams::~ConstructParams (&D.102241);
              D.102241 = {CLOBBER};
            }
          try
            {
              if (0 == 0) goto <D.103619>; else goto <D.103620>;
              <D.103619>:
              iftmp.45 = *__vtt_parm;
              goto <D.103621>;
              <D.103620>:
              iftmp.45 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 32B];
              <D.103621>:
              this->D.86027._vptr.Object = iftmp.45;
              if (0 == 0) goto <D.103623>; else goto <D.103624>;
              <D.103623>:
              D.103625 = this->D.86027._vptr.Object;
              D.103626 = D.103625 + 18446744073709551592;
              D.103627 = MEM[(long int *)D.103626];
              iftmp.46 = (sizetype) D.103627;
              goto <D.103628>;
              <D.103624>:
              iftmp.46 = 8;
              <D.103628>:
              D.103629 = this + iftmp.46;
              if (0 == 0) goto <D.103631>; else goto <D.103632>;
              <D.103631>:
              iftmp.47 = MEM[(const void * *)__vtt_parm + 24B];
              goto <D.103633>;
              <D.103632>:
              iftmp.47 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 120B];
              <D.103633>:
              D.103629->_vptr.ObjectBase = iftmp.47;
            }
          catch
            {
              if (0 == 0) goto <D.103635>; else goto <D.103636>;
              <D.103635>:
              iftmp.48 = __vtt_parm + 8;
              goto <D.103637>;
              <D.103636>:
              iftmp.48 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
              <D.103637>:
              D.103617 = &this->D.86027;
              Glib::Object::~Object (D.103617, iftmp.48);
            }
        }
      catch
        {
          if (0 != 0) goto <D.103638>; else goto <D.103639>;
          <D.103638>:
          if (0 == 0) goto <D.103641>; else goto <D.103642>;
          <D.103641>:
          iftmp.49 = __vtt_parm + 32;
          goto <D.103643>;
          <D.103642>:
          iftmp.49 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
          <D.103643>:
          D.103610 = &this->D.86029;
          Glib::ObjectBase::~ObjectBase (D.103610, iftmp.49);
          goto <D.103644>;
          <D.103639>:
          <D.103644>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.103645>; else goto <D.103646>;
      <D.103645>:
      D.103602 = &this->D.86030;
      sigc::trackable::~trackable (D.103602);
      goto <D.103647>;
      <D.103646>:
      <D.103647>:
    }
}


Gio::FilenameCompleter::FilenameCompleter() (struct FilenameCompleter * const this)
{
  struct trackable * D.103654;
  const void * * iftmp.50;
  struct ObjectBase * D.103662;
  struct ConstructParams D.102243;
  const struct Class & D.103664;
  const void * * iftmp.51;
  struct Object * D.103669;
  int (*__vtbl_ptr_type) () * iftmp.52;
  const void * * D.103673;
  sizetype iftmp.53;
  int (*__vtbl_ptr_type) () * D.103678;
  int (*__vtbl_ptr_type) () * D.103679;
  long int D.103680;
  struct ObjectBase * D.103682;
  int (*__vtbl_ptr_type) () * iftmp.54;
  const void * * iftmp.55;
  const void * * iftmp.56;

  if (1 != 0) goto <D.103652>; else goto <D.103653>;
  <D.103652>:
  D.103654 = &this->D.86030;
  sigc::trackable::trackable (D.103654);
  goto <D.103655>;
  <D.103653>:
  <D.103655>:
  try
    {
      if (1 != 0) goto <D.103656>; else goto <D.103657>;
      <D.103656>:
      if (1 == 0) goto <D.103659>; else goto <D.103660>;
      <D.103659>:
      iftmp.50 = 32B;
      goto <D.103661>;
      <D.103660>:
      iftmp.50 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
      <D.103661>:
      D.103662 = &this->D.86029;
      Glib::ObjectBase::ObjectBase (D.103662, iftmp.50, 0B);
      goto <D.103663>;
      <D.103657>:
      <D.103663>:
      try
        {
          D.103664 = Gio::FilenameCompleter_Class::init (&filenamecompleter_class_);
          Glib::ConstructParams::ConstructParams (&D.102243, D.103664);
          try
            {
              if (1 == 0) goto <D.103666>; else goto <D.103667>;
              <D.103666>:
              iftmp.51 = 8B;
              goto <D.103668>;
              <D.103667>:
              iftmp.51 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
              <D.103668>:
              D.103669 = &this->D.86027;
              Glib::Object::Object (D.103669, iftmp.51, &D.102243);
            }
          finally
            {
              Glib::ConstructParams::~ConstructParams (&D.102243);
              D.102243 = {CLOBBER};
            }
          try
            {
              if (1 == 0) goto <D.103671>; else goto <D.103672>;
              <D.103671>:
              D.103673 = 0B;
              iftmp.52 = *D.103673;
              goto <D.103674>;
              <D.103672>:
              iftmp.52 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 32B];
              <D.103674>:
              this->D.86027._vptr.Object = iftmp.52;
              if (1 == 0) goto <D.103676>; else goto <D.103677>;
              <D.103676>:
              D.103678 = this->D.86027._vptr.Object;
              D.103679 = D.103678 + 18446744073709551592;
              D.103680 = MEM[(long int *)D.103679];
              iftmp.53 = (sizetype) D.103680;
              goto <D.103681>;
              <D.103677>:
              iftmp.53 = 8;
              <D.103681>:
              D.103682 = this + iftmp.53;
              if (1 == 0) goto <D.103684>; else goto <D.103685>;
              <D.103684>:
              iftmp.54 = MEM[(const void * *)0B + 24B];
              goto <D.103686>;
              <D.103685>:
              iftmp.54 = &MEM[(void *)&_ZTVN3Gio17FilenameCompleterE + 120B];
              <D.103686>:
              D.103682->_vptr.ObjectBase = iftmp.54;
            }
          catch
            {
              if (1 == 0) goto <D.103688>; else goto <D.103689>;
              <D.103688>:
              iftmp.55 = 8B;
              goto <D.103690>;
              <D.103689>:
              iftmp.55 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 8B];
              <D.103690>:
              D.103669 = &this->D.86027;
              Glib::Object::~Object (D.103669, iftmp.55);
            }
        }
      catch
        {
          if (1 != 0) goto <D.103691>; else goto <D.103692>;
          <D.103691>:
          if (1 == 0) goto <D.103694>; else goto <D.103695>;
          <D.103694>:
          iftmp.56 = 32B;
          goto <D.103696>;
          <D.103695>:
          iftmp.56 = &MEM[(void *)&_ZTTN3Gio17FilenameCompleterE + 32B];
          <D.103696>:
          D.103662 = &this->D.86029;
          Glib::ObjectBase::~ObjectBase (D.103662, iftmp.56);
          goto <D.103697>;
          <D.103692>:
          <D.103697>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.103698>; else goto <D.103699>;
      <D.103698>:
      D.103654 = &this->D.86030;
      sigc::trackable::~trackable (D.103654);
      goto <D.103700>;
      <D.103699>:
      <D.103700>:
    }
}


static Glib::RefPtr<Gio::FilenameCompleter> Gio::FilenameCompleter::create() ()
{
  void * D.102247;

  D.102247 = operator new (48);
  try
    {
      Gio::FilenameCompleter::FilenameCompleter (D.102247);
    }
  catch
    {
      operator delete (D.102247);
    }
  Glib::RefPtr<Gio::FilenameCompleter>::RefPtr (<retval>, D.102247);
  return <retval>;
}


std::string Gio::FilenameCompleter::get_completion_suffix(const string&) const (const struct FilenameCompleter * const this, const struct string & initial_text)
{
  const char * D.103710;
  const struct GFilenameCompleter * D.103711;
  char * D.103712;

  D.103710 = std::basic_string<char>::c_str (initial_text);
  D.103711 = Gio::FilenameCompleter::gobj (this);
  D.103712 = g_filename_completer_get_completion_suffix (D.103711, D.103710);
  *<retval> = Glib::convert_return_gchar_ptr_to_stdstring (D.103712); [return slot optimization]
  return <retval>;
}


const _CharT* std::basic_string<_CharT, _Traits, _Alloc>::c_str() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] (const struct basic_string * const this)
{
  const char * D.103716;

  D.103716 = std::basic_string<char>::_M_data (this);
  return D.103716;
}


_CharT* std::basic_string<_CharT, _Traits, _Alloc>::_M_data() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] (const struct basic_string * const this)
{
  char * D.103719;

  D.103719 = this->_M_dataplus._M_p;
  return D.103719;
}


const GFilenameCompleter* Gio::FilenameCompleter::gobj() const (const struct FilenameCompleter * const this)
{
  const struct GFilenameCompleter * D.103721;
  int (*__vtbl_ptr_type) () * D.103722;
  int (*__vtbl_ptr_type) () * D.103723;
  long int D.103724;
  sizetype D.103725;
  const struct ObjectBase * D.103726;

  D.103722 = this->D.86027._vptr.Object;
  D.103723 = D.103722 + 18446744073709551592;
  D.103724 = MEM[(long int *)D.103723];
  D.103725 = (sizetype) D.103724;
  D.103726 = this + D.103725;
  D.103721 = D.103726->gobject_;
  return D.103721;
}


std::string Glib::convert_return_gchar_ptr_to_stdstring(char*) (char * str)
{
  struct allocator D.78983;
  bool cleanup.57;
  struct ScopedPtr D.78981;
  bool cleanup.58;
  char * D.103737;
  struct string * D.103738;

  cleanup.57 = 0;
  try
    {
      cleanup.58 = 0;
      try
        {
          if (str != 0B) goto <D.103729>; else goto <D.103730>;
          <D.103729>:
          std::allocator<char>::allocator (&D.78983);
          cleanup.57 = 1;
          Glib::ScopedPtr<char>::ScopedPtr (&D.78981, str);
          cleanup.58 = 1;
          D.103737 = Glib::ScopedPtr<char>::get (&D.78981);
          D.103738 = <retval>;
          std::basic_string<char>::basic_string (D.103738, D.103737, &D.78983);
          goto <D.103739>;
          <D.103730>:
          D.103738 = <retval>;
          std::basic_string<char>::basic_string (D.103738);
          <D.103739>:
          return <retval>;
        }
      finally
        {
          if (cleanup.58 != 0) goto <D.103735>; else goto <D.103736>;
          <D.103735>:
          Glib::ScopedPtr<char>::~ScopedPtr (&D.78981);
          D.78981 = {CLOBBER};
          <D.103736>:
        }
    }
  finally
    {
      if (cleanup.57 != 0) goto <D.103732>; else goto <D.103733>;
      <D.103732>:
      std::allocator<char>::~allocator (&D.78983);
      D.78983 = {CLOBBER};
      <D.103733>:
    }
}


std::allocator< <template-parameter-1-1> >::allocator() [with _Tp = char] (struct allocator * const this)
{
  void * D.103749;

  try
    {
      {
        __gnu_cxx::new_allocator<char>::new_allocator (this);
        try
          {

          }
        catch
          {
            __gnu_cxx::new_allocator<char>::~new_allocator (this);
          }
      }
    }
  catch
    {
      <<<eh_filter (NULL)>>>
        {
          
            D.103749 = __builtin_eh_pointer (0);
            __cxa_call_unexpected (D.103749);
          
        }
    }
}


__gnu_cxx::new_allocator<_Tp>::new_allocator() [with _Tp = char] (struct new_allocator * const this)
{
  void * D.103750;

  try
    {
      {

      }
    }
  catch
    {
      <<<eh_filter (NULL)>>>
        {
          
            D.103750 = __builtin_eh_pointer (0);
            __cxa_call_unexpected (D.103750);
          
        }
    }
}


Glib::ScopedPtr<T>::ScopedPtr(T*) [with T = char] (struct ScopedPtr * const this, char * ptr)
{
  this->ptr_ = ptr;
}


T* Glib::ScopedPtr<T>::get() const [with T = char] (const struct ScopedPtr * const this)
{
  char * D.103751;

  D.103751 = this->ptr_;
  return D.103751;
}


std::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] (struct basic_string * const this)
{
  struct allocator D.102766;
  struct _Rep & D.103753;
  char * D.103754;
  struct _Alloc_hider * D.103755;

  std::allocator<char>::allocator (&D.102766);
  try
    {
      D.103753 = std::basic_string<char>::_S_empty_rep ();
      D.103754 = std::basic_string<char>::_Rep::_M_refdata (D.103753);
      D.103755 = &this->_M_dataplus;
      std::basic_string<char>::_Alloc_hider::_Alloc_hider (D.103755, D.103754, &D.102766);
    }
  finally
    {
      std::allocator<char>::~allocator (&D.102766);
      D.102766 = {CLOBBER};
    }
  try
    {

    }
  catch
    {
      D.103755 = &this->_M_dataplus;
      std::basic_string<char>::_Alloc_hider::~_Alloc_hider (D.103755);
    }
}


static std::basic_string<_CharT, _Traits, _Alloc>::_Rep& std::basic_string<_CharT, _Traits, _Alloc>::_S_empty_rep() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] ()
{
  struct _Rep & D.103758;

  D.103758 = std::basic_string<char>::_Rep::_S_empty_rep ();
  return D.103758;
}


static std::basic_string<_CharT, _Traits, _Alloc>::_Rep& std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] ()
{
  struct _Rep & D.103761;
  void * __p;

  __p = &_S_empty_rep_storage;
  D.103761 = __p;
  return D.103761;
}


_CharT* std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_M_refdata() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] (struct _Rep * const this)
{
  char * D.103763;
  void * D.103764;

  try
    {
      D.103763 = this + 24;
      return D.103763;
    }
  catch
    {
      <<<eh_filter (NULL)>>>
        {
          
            D.103764 = __builtin_eh_pointer (0);
            __cxa_call_unexpected (D.103764);
          
        }
    }
}


std::basic_string<_CharT, _Traits, _Alloc>::_Alloc_hider::_Alloc_hider(_CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] (struct _Alloc_hider * const this, char * __dat, const struct allocator & __a)
{
  std::allocator<char>::allocator (this, __a);
  try
    {
      this->_M_p = __dat;
    }
  catch
    {
      std::allocator<char>::~allocator (this);
    }
}


std::allocator< <template-parameter-1-1> >::allocator(const std::allocator< <template-parameter-1-1> >&) [with _Tp = char] (struct allocator * const this, const struct allocator & __a)
{
  void * D.103766;

  try
    {
      {
        __gnu_cxx::new_allocator<char>::new_allocator (this, __a);
        try
          {

          }
        catch
          {
            __gnu_cxx::new_allocator<char>::~new_allocator (this);
          }
      }
    }
  catch
    {
      <<<eh_filter (NULL)>>>
        {
          
            D.103766 = __builtin_eh_pointer (0);
            __cxa_call_unexpected (D.103766);
          
        }
    }
}


__gnu_cxx::new_allocator<_Tp>::new_allocator(const __gnu_cxx::new_allocator<_Tp>&) [with _Tp = char] (struct new_allocator * const this, const struct new_allocator & D.14983)
{
  void * D.103767;

  try
    {
      {

      }
    }
  catch
    {
      <<<eh_filter (NULL)>>>
        {
          
            D.103767 = __builtin_eh_pointer (0);
            __cxa_call_unexpected (D.103767);
          
        }
    }
}


Glib::ScopedPtr<T>::~ScopedPtr() [with T = char] (struct ScopedPtr * const this)
{
  char * D.103768;

  {
    try
      {
        D.103768 = this->ptr_;
        g_free (D.103768);
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.102797>:
}


std::allocator< <template-parameter-1-1> >::~allocator() [with _Tp = char] (struct allocator * const this)
{
  void * D.103770;

  try
    {
      {
        try
          {
            try
              {

              }
            finally
              {
                __gnu_cxx::new_allocator<char>::~new_allocator (this);
              }
          }
        finally
          {
            *this = {CLOBBER};
          }
      }
      <D.102741>:
    }
  catch
    {
      <<<eh_filter (NULL)>>>
        {
          
            D.103770 = __builtin_eh_pointer (0);
            __cxa_call_unexpected (D.103770);
          
        }
    }
}


__gnu_cxx::new_allocator<_Tp>::~new_allocator() [with _Tp = char] (struct new_allocator * const this)
{
  void * D.103771;

  try
    {
      {
        try
          {

          }
        finally
          {
            *this = {CLOBBER};
          }
      }
      <D.102971>:
    }
  catch
    {
      <<<eh_filter (NULL)>>>
        {
          
            D.103771 = __builtin_eh_pointer (0);
            __cxa_call_unexpected (D.103771);
          
        }
    }
}


Glib::StringArrayHandle Gio::FilenameCompleter::get_completions(const string&) const (const struct FilenameCompleter * const this, const struct string & initial_text)
{
  const char * D.103773;
  const struct GFilenameCompleter * D.103774;
  char * * D.103775;

  D.103773 = std::basic_string<char>::c_str (initial_text);
  D.103774 = Gio::FilenameCompleter::gobj (this);
  D.103775 = g_filename_completer_get_completions (D.103774, D.103773);
  Glib::ArrayHandle<Glib::ustring>::ArrayHandle (<retval>, D.103775, 2);
  return <retval>;
}


Glib::ArrayHandle<T, Tr>::ArrayHandle(const CType*, Glib::OwnershipType) [with T = Glib::ustring; Tr = Glib::Container_Helpers::TypeTraits<Glib::ustring>; Glib::ArrayHandle<T, Tr>::CType = const char*] (struct ArrayHandle * const this, const char * const * array, OwnershipType ownership)
{
  long unsigned int iftmp.59;

  if (array != 0B) goto <D.103780>; else goto <D.103781>;
  <D.103780>:
  iftmp.59 = Glib::Container_Helpers::compute_array_size<const char*> (array);
  goto <D.103782>;
  <D.103781>:
  iftmp.59 = 0;
  <D.103782>:
  this->size_ = iftmp.59;
  this->parray_ = array;
  this->ownership_ = ownership;
}


std::size_t Glib::Container_Helpers::compute_array_size(const T*) [with T = const char*; std::size_t = long unsigned int] (const char * const * array)
{
  const char * D.103783;
  size_t D.103784;
  long int pend.60;
  long int array.61;
  long int D.103787;
  long int D.103788;
  const char * const * pend;

  pend = array;
  goto <D.102994>;
  <D.102995>:
  pend = pend + 8;
  <D.102994>:
  D.103783 = *pend;
  if (D.103783 != 0B) goto <D.102995>; else goto <D.102993>;
  <D.102993>:
  pend.60 = (long int) pend;
  array.61 = (long int) array;
  D.103787 = pend.60 - array.61;
  D.103788 = D.103787 /[ex] 8;
  D.103784 = (size_t) D.103788;
  return D.103784;
}


void Gio::FilenameCompleter::set_dirs_only(bool) (struct FilenameCompleter * const this, bool dirs_only)
{
  int D.103790;
  struct GFilenameCompleter * D.103791;

  D.103790 = (int) dirs_only;
  D.103791 = Gio::FilenameCompleter::gobj (this);
  g_filename_completer_set_dirs_only (D.103791, D.103790);
}


Glib::SignalProxy0<void> Gio::FilenameCompleter::signal_got_completion_data() (struct FilenameCompleter * const this)
{
  int (*__vtbl_ptr_type) () * D.103793;
  int (*__vtbl_ptr_type) () * D.103794;
  long int D.103795;
  sizetype D.103796;
  struct ObjectBase * D.103797;

  D.103793 = this->D.86027._vptr.Object;
  D.103794 = D.103793 + 18446744073709551592;
  D.103795 = MEM[(long int *)D.103794];
  D.103796 = (sizetype) D.103795;
  D.103797 = this + D.103796;
  Glib::SignalProxy0<void>::SignalProxy0 (<retval>, D.103797, &FilenameCompleter_signal_got_completion_data_info);
  return <retval>;
}


Glib::SignalProxy0<R>::SignalProxy0(Glib::ObjectBase*, const Glib::SignalProxyInfo*) [with R = void] (struct SignalProxy0 * const this, struct ObjectBase * obj, const struct SignalProxyInfo * info)
{
  struct SignalProxyNormal * D.103799;

  D.103799 = &this->D.102436;
  Glib::SignalProxyNormal::SignalProxyNormal (D.103799, obj, info);
  try
    {

    }
  catch
    {
      D.103799 = &this->D.102436;
      Glib::SignalProxyNormal::~SignalProxyNormal (D.103799);
    }
}


virtual void Gio::FilenameCompleter::on_got_completion_data() (struct FilenameCompleter * const this)
{
  int (*__vtbl_ptr_type) () * D.103800;
  int (*__vtbl_ptr_type) () * D.103801;
  long int D.103802;
  sizetype D.103803;
  struct ObjectBase * D.103804;
  struct GObject * D.103805;
  struct GTypeClass * D.103806;
  void (*<T107c2>) (struct GFilenameCompleter *) D.103809;
  struct GFilenameCompleter * D.103812;
  struct BaseClassType * const base;

  D.103800 = this->D.86027._vptr.Object;
  D.103801 = D.103800 + 18446744073709551592;
  D.103802 = MEM[(long int *)D.103801];
  D.103803 = (sizetype) D.103802;
  D.103804 = this + D.103803;
  D.103805 = D.103804->gobject_;
  D.103806 = MEM[(struct GTypeInstance *)D.103805].g_class;
  base = g_type_class_peek_parent (D.103806);
  if (base != 0B) goto <D.103807>; else goto <D.103808>;
  <D.103807>:
  D.103809 = base->got_completion_data;
  if (D.103809 != 0B) goto <D.103810>; else goto <D.103811>;
  <D.103810>:
  D.103809 = base->got_completion_data;
  D.103812 = Gio::FilenameCompleter::gobj (this);
  D.103809 (D.103812);
  goto <D.103813>;
  <D.103811>:
  <D.103813>:
  <D.103808>:
}


