/* DO NOT EDIT THIS FILE - it is machine generated (JCGO_116) */

#ifdef JCGO_SEPARATED
#define JCGO_116
#include "jcgortl.h"
#include "Main.h"
#endif

#ifdef JCGO_116

#ifdef CHKALL_java_lang_ClassLoader
#include "jcgobchk.h"
#endif

JCGO_NOSEP_INLINE void CFASTCALL
java_lang_ClassLoader__void( java_lang_ClassLoader This )
{
 (void)(java_util_HashMap__new__());
 (void)((java_lang_VMClassLoader__defaultAssertionStatus__()));
}

JCGO_NOSEP_INLINE void CFASTCALL
java_lang_ClassLoader__checkInitialized__( java_lang_ClassLoader This
 )
{
 {
  if (!JCGO_FIELD_NZACCESS(This, initialized))
  {
   JCGO_THROW_EXC((java_lang_SecurityException__new__Ls(
    JCGO_STRREF_OF(jcgo_string2_ClassLdr))));
  }
 }
}

JCGO_NOSEP_INLINE java_lang_Class CFASTCALL
java_lang_ClassLoader__findLoadedClass__Ls( java_lang_ClassLoader
 This, java_lang_String name )
{
 JCGO_SYNC_BLOCKSAFENZ(This)
 {
  (java_lang_ClassLoader__checkInitialized__(
   This));
  {
   java_lang_Class jcgo_retval= (java_lang_VMClassLoader__findLoadedClass__L09rb1Ls(
    This, name));
#ifndef JCGO_SEHTRY
   JCGO_SYNC_JUMPLEAVE(0);
#endif
   return jcgo_retval;
  }
 }
 JCGO_SYNC_ENDUNREACH
}

JCGO_NOSEP_INLINE java_lang_Class CFASTCALL
java_lang_ClassLoader__findClass__Ls( java_lang_ClassLoader This,
 java_lang_String name )
{
 {
  JCGO_THROW_EXC((java_lang_ClassNotFoundException__new__Ls(
   name)));
 }
 return jnull;
}

JCGO_NOSEP_STATIC java_lang_ClassLoader CFASTCALL
java_lang_ClassLoader__this__L09rb1( java_lang_ClassLoader This, java_lang_ClassLoader
 parent )
{
 {
  ;
  java_lang_ClassLoader__void(This);
  JCGO_FIELD_NZACCESS(This, parent)= parent;
  JCGO_FIELD_NZACCESS(This, initialized)= (jboolean)jtrue;
 }
 return This;
}

JCGO_NOSEP_INLINE java_lang_ClassLoader CFASTCALL
java_lang_ClassLoader__this__( java_lang_ClassLoader This )
{
 {
  (java_lang_ClassLoader__this__L09rb1((java_lang_ClassLoader)This,
   JCGO_CLINIT_VARACC(java_lang_ClassLoader_StaticData__class, java_lang_ClassLoader_StaticData__class.systemClassLoader)));
 }
 return This;
}

JCGO_NOSEP_FRWINL java_lang_Class CFASTCALL
java_lang_ClassLoader__loadClass__Ls( java_lang_ClassLoader This,
 java_lang_String name )
{
 {
  return (java_lang_ClassLoader__loadClass__LsZ(
   This, name, (jboolean)jfalse));
 }
}

JCGO_NOSEP_STATIC java_lang_Class CFASTCALL
java_lang_ClassLoader__loadClass__LsZ( java_lang_ClassLoader This,
 java_lang_String name, jboolean resolve )
{
 JCGO_SYNC_BLOCKSAFENZ(This)
 {
  java_lang_Class JCGO_TRY_VOLATILE c;
  c= (java_lang_ClassLoader__findLoadedClass__Ls(
   This, name));
  if (c == jnull)
  {
   {
    JCGO_TRY_BLOCK
    {
     if (JCGO_FIELD_NZACCESS(This, parent) == jnull)
     {
      c= (java_lang_VMClassLoader__loadClass__LsZ(
       name, (jboolean)resolve));
      if (c != jnull)
      {
#ifndef JCGO_SEHTRY
       jcgo_tryLeave();
       JCGO_SYNC_JUMPLEAVE(0);
#endif
       return c;
      }
     }
     else
     {
      {
       java_lang_Class jcgo_retval= (java_lang_ClassLoader__loadClass__LsZ(
        JCGO_FIELD_NZACCESS(This, parent), name, (jboolean)resolve));
#ifndef JCGO_SEHTRY
       jcgo_tryLeave();
       JCGO_SYNC_JUMPLEAVE(0);
#endif
       return jcgo_retval;
      }
     }
    }
    JCGO_TRY_LEAVE
    JCGO_TRY_CATCHES(1)
    JCGO_TRY_CATCH(OBJT_java_lang_ClassNotFoundException, MAXT_java_lang_ClassNotFoundException)
    {
    }
    JCGO_TRY_RETHROW(1)
   }
   c= (java_lang_ClassLoader__findClass__Ls(
    This, name));
  }
  if (resolve)
  {
   (java_lang_ClassLoader__resolveClass__Lc(
    This, c));
  }
#ifndef JCGO_SEHTRY
  JCGO_SYNC_JUMPLEAVE(0);
#endif
  return c;
 }
 JCGO_SYNC_ENDUNREACH
}

JCGO_NOSEP_STATIC void CFASTCALL
java_lang_ClassLoader__resolveClass__Lc( java_lang_ClassLoader This,
 java_lang_Class c )
{
 {
  (java_lang_ClassLoader__checkInitialized__(
   This));
  (java_lang_VMClassLoader__resolveClass__Lc(
   c));
 }
}

JCGO_NOSEP_FRWINL java_lang_ClassLoader CFASTCALL
java_lang_ClassLoader__getSystemClassLoader__( void )
{
 {
  return JCGO_CLINIT_VARACC(java_lang_ClassLoader_StaticData__class,
   java_lang_ClassLoader_StaticData__class.systemClassLoader);
 }
}

JCGO_NOSEP_FRWINL jboolean CFASTCALL
java_lang_ClassLoader__isAncestorOf__L09rb1( java_lang_ClassLoader
 This, java_lang_ClassLoader loader )
{
 {
  while (loader != jnull)
  {
   if (This == loader)
   {
    return (jboolean)jtrue;
   }
   loader= JCGO_FIELD_NZACCESS(loader, parent);
  }
  return (jboolean)jfalse;
 }
}

JCGO_NOSEP_DATA CONST struct jcgo_methods_s java_lang_ClassLoader_methods=
{
 JCGO_CLASSREF_OF(java_lang_ClassLoader__class),
 JCGO_GCJDESCR_ZEROINIT
 OBJT_java_lang_ClassLoader,
 0,
 NULL,
 JCGO_CLINIT_INIT(0)
 (jObject (CFASTCALL*)(jObject))java_lang_ClassLoader__this__
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_ClassLoader_class_s
 java_lang_ClassLoader__class JCGO_THRD_ATTRNONGC=
{
 {
  &java_lang_Class_methods,
  JCGO_MON_INIT
  JCGO_OBJREF_OF(*(java_lang_Object)&java_lang_ClassLoader_methods),
  JCGO_STRREF_OF(jcgo_string1_ClassLdr),
  JCGO_CLASSREF_OF(java_lang_Object__class),
  ((jObjectArr)JCGO_OBJREF_OF(jcgo_array3_Object)),
  0x401
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype98_GmCnnctn jcgo_array3_ClassLdr=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 32,
 {
  (jbyte)(jchar)106/*'j'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)118/*'v'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)108/*'l'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)103/*'g'*/,
   (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)67/*'C'*/, (jbyte)(jchar)108/*'l'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)115/*'s'*/,
   (jbyte)(jchar)76/*'L'*/, (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)36/*'$'*/, (jbyte)(jchar)83/*'S'*/, (jbyte)(jchar)116/*'t'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)105/*'i'*/,
   (jbyte)(jchar)99/*'c'*/, (jbyte)(jchar)68/*'D'*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)97/*'a'*/
 }
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string1_ClassLdr
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array3_ClassLdr),
 0, 21, (jint)0x87ecc9d7L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string2_ClassLdr
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array468_VMSstmPr),
 0, 41, (jint)0x1e78310bL
};

#ifdef CHKALL_java_lang_ClassLoader
#include "jcgochke.h"
#endif

#endif
