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

JCGO_NOSEP_INLINE void CFASTCALL
java_util_HashMap_HashIterator__void( java_util_HashMap_HashIterator
 This )
{
 JCGO_FIELD_NZACCESS(This, knownMod)= JCGO_VLT_FETCHI(JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This,
  this_0), modCount));
 JCGO_FIELD_NZACCESS(This, count)= JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This,
  this_0), size);
 JCGO_FIELD_NZACCESS(This, idx)= JCGO_ARRAY_LENGTH(JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This,
  this_0), buckets));
}

JCGO_NOSEP_STATIC java_util_HashMap_HashIterator CFASTCALL
java_util_HashMap_HashIterator__this__L8hkr7I( java_util_HashMap_HashIterator
 This, java_util_HashMap this_0, jint type )
{
 {
  JCGO_FIELD_NZACCESS(This, this_0)= this_0;
  java_util_HashMap_HashIterator__void(This);
  JCGO_FIELD_NZACCESS(This, type)= type;
 }
 return This;
}

JCGO_NOSEP_FRWINL java_util_HashMap_HashIterator CFASTCALL
java_util_HashMap_HashIterator__new__L8hkr7I( java_util_HashMap this_0,
 jint type )
{
 return java_util_HashMap_HashIterator__this__L8hkr7I(
  (java_util_HashMap_HashIterator)jcgo_newObject((jvtable)&java_util_HashMap_HashIterator_methods),
  this_0, type);
}

JCGO_NOSEP_INLINE jboolean CFASTCALL
java_util_HashMap_HashIterator__hasNext__( java_util_HashMap_HashIterator
 This )
{
 {
  return (jboolean)(JCGO_FIELD_NZACCESS(This, count) > 0);
 }
}

JCGO_NOSEP_STATIC java_lang_Object CFASTCALL
java_util_HashMap_HashIterator__next__( java_util_HashMap_HashIterator
 This )
{
 {
  java_util_HashMap_HashEntry e;
  if (JCGO_FIELD_NZACCESS(This, knownMod) != JCGO_VLT_FETCHI(JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This,
   this_0), modCount)))
  {
   JCGO_THROW_EXC(java_util_ConcurrentModificationException__new__());
  }
  if (JCGO_FIELD_NZACCESS(This, count) == 0)
  {
   JCGO_THROW_EXC(java_util_NoSuchElementException__new__());
  }
  JCGO_FIELD_NZACCESS(This, count)--;
  e= JCGO_FIELD_NZACCESS(This, next);
  while (e == jnull)
  {
   jObject jcgo_rcvrL1;
   e= (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This,
    this_0), buckets), (java_util_HashMap_HashEntry)JCGO_ARRAY_LACCESS((jObjectArr)jcgo_rcvrL1,
    --JCGO_FIELD_NZACCESS(This, idx)));
  }
  JCGO_FIELD_NZACCESS(This, next)= JCGO_FIELD_NZACCESS(e, next);
  JCGO_FIELD_NZACCESS(This, last)= e;
  if (JCGO_FIELD_NZACCESS(This, type) == java_util_AbstractMap__VALUES)
  {
   return JCGO_FIELD_NZACCESS(e, value);
  }
  if (JCGO_FIELD_NZACCESS(This, type) == java_util_AbstractMap__KEYS)
  {
   return JCGO_FIELD_NZACCESS(e, key);
  }
  return (java_lang_Object)e;
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
java_util_HashMap_HashIterator__remove__( java_util_HashMap_HashIterator
 This )
{
 {
  if (JCGO_FIELD_NZACCESS(This, knownMod) != JCGO_VLT_FETCHI(JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This,
   this_0), modCount)))
  {
   JCGO_THROW_EXC(java_util_ConcurrentModificationException__new__());
  }
  if (JCGO_FIELD_NZACCESS(This, last) == jnull)
  {
   JCGO_THROW_EXC(java_lang_IllegalStateException__new__());
  }
  (java_util_HashMap__remove__Lo(
   JCGO_FIELD_NZACCESS(This, this_0), JCGO_FIELD_ACCESS(java_util_AbstractMap_BasicMapEntry,
   JCGO_FIELD_NZACCESS(This, last), key)));
  JCGO_FIELD_NZACCESS(This, last)= (java_util_HashMap_HashEntry)jnull;
  JCGO_FIELD_NZACCESS(This, knownMod)++;
 }
}

JCGO_NOSEP_DATA CONST struct java_util_HashMap_HashIterator_methods_s
 java_util_HashMap_HashIterator_methods=
{
 JCGO_CLASSREF_OF(java_util_HashMap_HashIterator__class),
 JCGO_GCJDESCR_INIT(java_util_HashMap_HashIterator_s, next)
 OBJT_java_util_HashMap_HashIterator,
 (JCGO_OBJSIZE_T)sizeof(struct java_util_HashMap_HashIterator_s),
 NULL,
 JCGO_CLINIT_INIT(0)
 0,
 java_lang_Object__equals__Lo,
 java_lang_Object__hashCode__,
 java_lang_Object__toString__,
 java_lang_Object__finalize__,
 java_util_HashMap_HashIterator__hasNext__,
 java_util_HashMap_HashIterator__next__,
 java_util_HashMap_HashIterator__remove__
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_util_HashMap_HashIterator_class_s
 java_util_HashMap_HashIterator__class JCGO_THRD_ATTRNONGC=
{
 {
  &java_lang_Class_methods,
  JCGO_MON_INIT
  JCGO_OBJREF_OF(*(java_lang_Object)&java_util_HashMap_HashIterator_methods),
  JCGO_STRREF_OF(jcgo_string1_HshItrtr),
  JCGO_CLASSREF_OF(java_lang_Object__class),
  ((jObjectArr)JCGO_OBJREF_OF(jcgo_array2_EntrItrt)),
  0x12
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype77_GmCnnctn jcgo_array2_HshItrtr=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 30,
 {
  (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)72/*'H'*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)104/*'h'*/, (jbyte)(jchar)77/*'M'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)112/*'p'*/, (jbyte)(jchar)36/*'$'*/,
   (jbyte)(jchar)72/*'H'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)115/*'s'*/,
   (jbyte)(jchar)104/*'h'*/, (jbyte)(jchar)73/*'I'*/, (jbyte)(jchar)116/*'t'*/,
   (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)114/*'r'*/
 }
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string1_HshItrtr
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array2_HshItrtr),
 0, 30, (jint)0x46bec0f2L
};

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

#endif
