/* 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_util_LinkedList
#include "jcgobchk.h"
#endif

JCGO_NOSEP_INLINE void CFASTCALL
java_util_LinkedList__void( java_util_LinkedList This )
{
}

JCGO_NOSEP_STATIC java_util_LinkedList_Entry CFASTCALL
java_util_LinkedList__getEntry__I( java_util_LinkedList This, jint
 n )
{
 {
  java_util_LinkedList_Entry e;
  if (n < JCGO_FIELD_NZACCESS(This, size) / (jint)2)
  {
   e= JCGO_FIELD_NZACCESS(This, first);
   while (n-- > 0)
   {
    e= JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, e, next);
   }
  }
  else
  {
   jint jcgo_rcvrI1;
   e= JCGO_FIELD_NZACCESS(This, last);
   while ((jcgo_rcvrI1= ++n, jcgo_rcvrI1 < JCGO_FIELD_NZACCESS(This,
    size)))
   {
    e= JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, e, previous);
   }
  }
  return e;
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
java_util_LinkedList__removeEntry__L0dc3c( java_util_LinkedList This,
 java_util_LinkedList_Entry e )
{
 {
  JCGO_FIELD_NZACCESS(This, modCount)++;
  JCGO_FIELD_NZACCESS(This, size)--;
  if (JCGO_FIELD_NZACCESS(This, size) == 0)
  {
   JCGO_FIELD_NZACCESS(This, first)= JCGO_FIELD_NZACCESS(This, last)=
    (java_util_LinkedList_Entry)jnull;
  }
  else
  {
   if (e == JCGO_FIELD_NZACCESS(This, first))
   {
    JCGO_FIELD_NZACCESS(This, first)= JCGO_FIELD_ACCESS(java_util_LinkedList_Entry,
     e, next);
    JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, JCGO_FIELD_NZACCESS(e,
     next), previous)= (java_util_LinkedList_Entry)jnull;
   }
   else
   {
    if (e == JCGO_FIELD_NZACCESS(This, last))
    {
     JCGO_FIELD_NZACCESS(This, last)= JCGO_FIELD_ACCESS(java_util_LinkedList_Entry,
      e, previous);
     JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, JCGO_FIELD_NZACCESS(e,
      previous), next)= (java_util_LinkedList_Entry)jnull;
    }
    else
    {
     jObject jcgo_rcvrL1;
     (jcgo_rcvrL1= (void*)&JCGO_FIELD_ACCESS(java_util_LinkedList_Entry,
      JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, e, next), previous),
      *(java_util_LinkedList_Entry*)jcgo_rcvrL1= JCGO_FIELD_ACCESS(java_util_LinkedList_Entry,
      e, previous));
     JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, JCGO_FIELD_NZACCESS(e,
      previous), next)= JCGO_FIELD_NZACCESS(e, next);
    }
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
java_util_LinkedList__checkBoundsInclusive__I( java_util_LinkedList
 This, jint index )
{
 {
  if (index < 0 || index > JCGO_FIELD_NZACCESS(This, size))
  {
   jObject jcgo_rcvrL1;
   struct java_lang_StringBuilder_s jcgo_stackobj1;
   struct java_lang_String_s jcgo_stackobj2;
   struct java_lang_String_s jcgo_stackobj3;
   JCGO_THROW_EXC((java_lang_IndexOutOfBoundsException__new__Ls(
    (jcgo_rcvrL1= (jObject)java_lang_StringBuilder__append__Ls(
    java_lang_StringBuilder__append__Ls(
    java_lang_StringBuilder__append__Ls(
    java_lang_StringBuilder__this__(
    JCGO_STACKOBJ_NEW(jcgo_stackobj1, java_lang_StringBuilder_methods)),
    JCGO_STRREF_OF(jcgo_string2_AbstrcLs)), (java_lang_String__valueOf__IX(
    index, JCGO_STACKOBJ_NEW(jcgo_stackobj2, java_lang_String_methods)))),
    JCGO_STRREF_OF(jcgo_string3_AbstrcLs)), java_lang_String__new__L5dy9e(
    java_lang_StringBuilder__append__Ls(
    (java_lang_StringBuilder)jcgo_rcvrL1, (java_lang_String__valueOf__IX(
    JCGO_FIELD_NZACCESS(This, size), JCGO_STACKOBJ_NEW(jcgo_stackobj3,
    java_lang_String_methods)))))))));
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
java_util_LinkedList__checkBoundsExclusive__I( java_util_LinkedList
 This, jint index )
{
 {
  if (index < 0 || index >= JCGO_FIELD_NZACCESS(This, size))
  {
   jObject jcgo_rcvrL1;
   struct java_lang_StringBuilder_s jcgo_stackobj1;
   struct java_lang_String_s jcgo_stackobj2;
   struct java_lang_String_s jcgo_stackobj3;
   JCGO_THROW_EXC((java_lang_IndexOutOfBoundsException__new__Ls(
    (jcgo_rcvrL1= (jObject)java_lang_StringBuilder__append__Ls(
    java_lang_StringBuilder__append__Ls(
    java_lang_StringBuilder__append__Ls(
    java_lang_StringBuilder__this__(
    JCGO_STACKOBJ_NEW(jcgo_stackobj1, java_lang_StringBuilder_methods)),
    JCGO_STRREF_OF(jcgo_string2_AbstrcLs)), (java_lang_String__valueOf__IX(
    index, JCGO_STACKOBJ_NEW(jcgo_stackobj2, java_lang_String_methods)))),
    JCGO_STRREF_OF(jcgo_string3_AbstrcLs)), java_lang_String__new__L5dy9e(
    java_lang_StringBuilder__append__Ls(
    (java_lang_StringBuilder)jcgo_rcvrL1, (java_lang_String__valueOf__IX(
    JCGO_FIELD_NZACCESS(This, size), JCGO_STACKOBJ_NEW(jcgo_stackobj3,
    java_lang_String_methods)))))))));
  }
 }
}

JCGO_NOSEP_STATIC java_util_LinkedList CFASTCALL
java_util_LinkedList__this__( java_util_LinkedList This )
{
 {
  (java_util_AbstractSequentialList__this__((java_util_AbstractSequentialList)This));
 }
 return This;
}

JCGO_NOSEP_FRWINL java_util_LinkedList CFASTCALL
java_util_LinkedList__new__( void )
{
 return java_util_LinkedList__this__(
  (java_util_LinkedList)jcgo_newObject((jvtable)&java_util_LinkedList_methods));
}

JCGO_NOSEP_STATIC void CFASTCALL
java_util_LinkedList__addLastEntry__L0dc3c( java_util_LinkedList This,
 java_util_LinkedList_Entry e )
{
 {
  JCGO_FIELD_NZACCESS(This, modCount)++;
  if (JCGO_FIELD_NZACCESS(This, size) == 0)
  {
   JCGO_FIELD_NZACCESS(This, first)= JCGO_FIELD_NZACCESS(This, last)=
    e;
  }
  else
  {
   JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, e, previous)= JCGO_FIELD_NZACCESS(This,
    last);
   JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, JCGO_FIELD_NZACCESS(This,
    last), next)= e;
   JCGO_FIELD_NZACCESS(This, last)= e;
  }
  JCGO_FIELD_NZACCESS(This, size)++;
 }
}

JCGO_NOSEP_STATIC jboolean CFASTCALL
java_util_LinkedList__contains__Lo( java_util_LinkedList This, java_lang_Object
 o )
{
 {
  java_util_LinkedList_Entry e;
  e= JCGO_FIELD_NZACCESS(This, first);
  while (e != jnull)
  {
   if ((java_util_AbstractCollection__equals__LoLo(
    o, JCGO_FIELD_NZACCESS(e, data))))
   {
    return (jboolean)jtrue;
   }
   e= JCGO_FIELD_NZACCESS(e, next);
  }
  return (jboolean)jfalse;
 }
}

JCGO_NOSEP_INLINE jint CFASTCALL
java_util_LinkedList__size__( java_util_LinkedList This )
{
 {
  return JCGO_FIELD_NZACCESS(This, size);
 }
}

JCGO_NOSEP_STATIC jboolean CFASTCALL
java_util_LinkedList__add__Lo( java_util_LinkedList This, java_lang_Object
 o )
{
 {
  (java_util_LinkedList__addLastEntry__L0dc3c(
   This, (java_util_LinkedList_Entry__new__Lo(
   o))));
  return (jboolean)jtrue;
 }
}

JCGO_NOSEP_STATIC java_lang_Object CFASTCALL
java_util_LinkedList__get__I( java_util_LinkedList This, jint index
 )
{
 {
  (java_util_LinkedList__checkBoundsExclusive__I(
   This, index));
  return JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, (java_util_LinkedList__getEntry__I(
   This, index)), data);
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
java_util_LinkedList__add__ILo( java_util_LinkedList This, java_lang_Object
 o, jint index )
{
 {
  java_util_LinkedList_Entry e;
  (java_util_LinkedList__checkBoundsInclusive__I(
   This, index));
  e= (java_util_LinkedList_Entry__new__Lo(
   o));
  if (index < JCGO_FIELD_NZACCESS(This, size))
  {
   java_util_LinkedList_Entry after;
   JCGO_FIELD_NZACCESS(This, modCount)++;
   after= (java_util_LinkedList__getEntry__I(
    This, index));
   JCGO_FIELD_NZACCESS(e, next)= after;
   JCGO_FIELD_NZACCESS(e, previous)= JCGO_FIELD_ACCESS(java_util_LinkedList_Entry,
    after, previous);
   if (JCGO_FIELD_NZACCESS(after, previous) == jnull)
   {
    JCGO_FIELD_NZACCESS(This, first)= e;
   }
   else
   {
    JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, JCGO_FIELD_NZACCESS(after,
     previous), next)= e;
   }
   JCGO_FIELD_NZACCESS(after, previous)= e;
   JCGO_FIELD_NZACCESS(This, size)++;
  }
  else
  {
   (java_util_LinkedList__addLastEntry__L0dc3c(
    This, e));
  }
 }
}

JCGO_NOSEP_STATIC java_lang_Object CFASTCALL
java_util_LinkedList__remove__I( java_util_LinkedList This, jint index
 )
{
 {
  java_util_LinkedList_Entry e;
  (java_util_LinkedList__checkBoundsExclusive__I(
   This, index));
  e= (java_util_LinkedList__getEntry__I(
   This, index));
  (java_util_LinkedList__removeEntry__L0dc3c(
   This, e));
  return JCGO_FIELD_ACCESS(java_util_LinkedList_Entry, e, data);
 }
}

JCGO_NOSEP_STATIC java_util_Iterator CFASTCALL
java_util_LinkedList__listIterator__I( java_util_LinkedList This,
 jint index )
{
 {
  (java_util_LinkedList__checkBoundsInclusive__I(
   This, index));
  return (java_util_Iterator)(java_util_LinkedList_LinkedListItr__new__L9aslsI(
   This, index));
 }
}

JCGO_NOSEP_DATA CONST struct java_util_LinkedList_methods_s java_util_LinkedList_methods=
{
 JCGO_CLASSREF_OF(java_util_LinkedList__class),
 JCGO_GCJDESCR_INIT(java_util_LinkedList_s, last)
 OBJT_java_util_LinkedList,
 (JCGO_OBJSIZE_T)sizeof(struct java_util_LinkedList_s),
 NULL,
 JCGO_CLINIT_INIT(0)
 java_util_LinkedList__this__,
 java_util_AbstractList__equals__Lo,
 java_util_AbstractList__hashCode__,
 java_util_AbstractCollection__toString__,
 java_lang_Object__finalize__,
 java_util_AbstractCollection__isEmpty__,
 java_util_AbstractSequentialList__iterator__,
 java_util_LinkedList__size__,
 java_util_LinkedList__add__Lo,
 java_util_LinkedList__contains__Lo,
 java_util_AbstractCollection__containsAll__L07mt2,
 java_util_LinkedList__get__I,
 java_util_LinkedList__add__ILo,
 java_util_LinkedList__listIterator__I,
 java_util_LinkedList__remove__I
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_util_LinkedList_class_s
 java_util_LinkedList__class JCGO_THRD_ATTRNONGC=
{
 {
  &java_lang_Class_methods,
  JCGO_MON_INIT
  JCGO_OBJREF_OF(*(java_lang_Object)&java_util_LinkedList_methods),
  JCGO_STRREF_OF(jcgo_string1_LnkdLst),
  JCGO_CLASSREF_OF(java_util_AbstractSequentialList__class),
  ((jObjectArr)JCGO_OBJREF_OF(jcgo_array2_LnkdLst)),
  0x1
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype5_Hshtbl jcgo_array2_LnkdLst=
{
 (jvtable)&jObjectArr_methods,
 JCGO_MON_INIT
 2,
 JCGO_CLASSREF_OF(java_lang_Class__class),
 {
  (jObject)JCGO_CLASSREF_OF(java_util_List__class), (jObject)JCGO_CLASSREF_OF(java_lang_Cloneable__class)
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype27_Object jcgo_array3_LnkdLst=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 26,
 {
  (jbyte)(jchar)106/*'j'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)118/*'v'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)117/*'u'*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)108/*'l'*/,
   (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)76/*'L'*/, (jbyte)(jchar)105/*'i'*/,
   (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)107/*'k'*/, (jbyte)(jchar)101/*'e'*/,
   (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)76/*'L'*/, (jbyte)(jchar)105/*'i'*/,
   (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)36/*'$'*/,
   (jbyte)(jchar)69/*'E'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)116/*'t'*/,
   (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)121/*'y'*/
 }
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string1_LnkdLst
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array3_LnkdLst),
 0, 20, (jint)0x8ecb7017L
};

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

#endif
