harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Pervov" <pmcfi...@gmail.com>
Subject Re: [drlvm][runtime support] a question about an old JIRA -- H1922
Date Tue, 13 Mar 2007 08:41:41 GMT
Second line of class_alloc_new_object asserts
'!hythread_is_suspend_enabled()'. So, yes, we can assume the condition.

The line to add is something like
'assert(struct_Class_to_java_lang_Class());' to remove it in release.

WBR,
    Pavel.


On 3/12/07, Weldon Washburn <weldonwjw@gmail.com> wrote:
>
> Looking at just the procedure named, class_alloc_new_object(), the assert
> definitely looks wrong.  However, I think the patch ignores the intent of
> the assert.  I think the developer intended to somehow assert that the
> input
> arg, a ptr to struct Class, is valid.  In other words the original intent
> is
> to do something like:
>
>
> assert(c);
>
> ManagedObject** hjlc = c->get_class_handle();
>
> assert(hjlc);
>
> ManagedObject* jlc = *hjlc;
>
> assert(jlc != NULL);
>
> assert(jlc->vt());
>
> assert(jlc->vt()->clss ==
> VM_Global_State::loader_env->JavaLangClass_Class);
>
> assert(java_lang_Class_to_struct_Class(jlc) == clss); // else clss's
> java.lang.Class had a bad "back" pointer
> Note that I stole all the above code from the existing function called,
>
> ManagedObject *struct_Class_to_java_lang_Class(Class *clss) {...}
>
> Rather than cut/paste the body of struct_Class_to_java_lang_Class into
> class_alloc_new_object(), how about simply calling
> struct_Class_to_java_lang_Class()?  The only unknown is if we can assume
> the condition assert(!hythread_is_suspend_enabled() );  will be OK from
> the
> body of class_alloc_new_object().  Thoughts?
>
>
> --
> Weldon Washburn
> Intel Enterprise Solutions Software Division
>



-- 
Pavel Pervov,
Intel Enterprise Solutions Software Division

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message