Is this bugfix correct (jni.cc)?
Martin Kahlert
martin.kahlert@infineon.com
Wed Jun 6 23:36:00 GMT 2001
Hi!
Did anybody look into that upto now? Is the fix correct, or is it wrong?
The code produces and infinite loop for my apps.
Thanks,
Martin.
PS: Sorry, if the fix is in cvs right now, but i only use snapshots and
the last one doesn't contain it.
On Wed, May 09, 2001 at 08:43:28AM +0200, Martin Kahlert wrote:
> 2001年05月09日 Martin Kahlert <martin.kahlert@infineon.com>
>> * jni.cc (_Jv_JNI_NewLocalRef): Search next frame, if
> we could not find free slot in this one. Fixes infinite loop.
>> *** jni.cc.orig Tue May 8 16:59:35 2001
> --- jni.cc Wed May 9 08:38:38 2001
> ***************
> *** 280,296 ****
> {
> // Try to find an open slot somewhere in the topmost frame.
> _Jv_JNI_LocalFrame *frame = env->locals;
> ! bool done = false, set = false;
> ! while (frame != NULL && ! done)
> {
> for (int i = 0; i < frame->size; ++i)
> if (frame->vec[i] == NULL)
> {
> set = true;
> - done = true;
> frame->vec[i] = obj;
> break;
> }
> }
>> if (! set)
> --- 280,296 ----
> {
> // Try to find an open slot somewhere in the topmost frame.
> _Jv_JNI_LocalFrame *frame = env->locals;
> ! bool set = false;
> ! while (frame != NULL && ! set)
> {
> for (int i = 0; i < frame->size; ++i)
> if (frame->vec[i] == NULL)
> {
> set = true;
> frame->vec[i] = obj;
> break;
> }
> + frame = frame->next;
> }
>> if (! set)
>
--
The early bird gets the worm. If you want something else for
breakfast, get up later.
More information about the Java
mailing list