summaryrefslogtreecommitdiffstats
path: root/libjava/java/lang/ref/natReference.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-25 15:23:56 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-25 15:23:56 +0000
commitc97bf3a9211885e6963ea845a25e89c54d306cc9 (patch)
tree14b238eff9b75fc8a5c871087ee4eece2bb8e3a9 /libjava/java/lang/ref/natReference.cc
parent1281fc1b8b24fe956e861dcfa71e388df43e47b2 (diff)
downloadppe42-gcc-c97bf3a9211885e6963ea845a25e89c54d306cc9.tar.gz
ppe42-gcc-c97bf3a9211885e6963ea845a25e89c54d306cc9.zip
PR libgcj/21703:
* java/lang/ref/natReference.cc (find_slot): Handle case where table has no NULL entries. * java/lang/natString.cc (_Jv_StringFindSlot): Handle case where table has no NULL entries. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100153 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/ref/natReference.cc')
-rw-r--r--libjava/java/lang/ref/natReference.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/libjava/java/lang/ref/natReference.cc b/libjava/java/lang/ref/natReference.cc
index e322ae37cc8..5ad5b107405 100644
--- a/libjava/java/lang/ref/natReference.cc
+++ b/libjava/java/lang/ref/natReference.cc
@@ -1,6 +1,6 @@
// natReference.cc - Native code for References
-/* Copyright (C) 2001, 2002, 2003 Free Software Foundation
+/* Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation
This file is part of libgcj.
@@ -78,7 +78,7 @@ find_slot (jobject key)
int start_index = hcode & (hash_size - 1);
int index = start_index;
int deleted_index = -1;
- for (;;)
+ do
{
object_list *ptr = &hash[index];
if (ptr->reference == key)
@@ -96,8 +96,12 @@ find_slot (jobject key)
JvAssert (ptr->reference == DELETED_REFERENCE);
}
index = (index + step) & (hash_size - 1);
- JvAssert (index != start_index);
}
+ while (index != start_index);
+ // Note that we can have INDEX == START_INDEX if the table has no
+ // NULL entries but does have DELETED entries.
+ JvAssert (deleted_index >= 0);
+ return &hash[deleted_index];
}
static void
OpenPOWER on IntegriCloud