Changes: Joseph Wenninger, Martin Platter
- $Id: jni.c 1764 2004-12-15 16:21:20Z jowenn $
+ $Id: jni.c 1771 2004-12-17 23:05:27Z jowenn $
*/
case 'L':
{
char *start = (*utf_ptr) - 1;
- char *end = NULL;
+ /*char *end = NULL;
while (utf_nextu2(utf_ptr) != ';')
- end = (*utf_ptr) + 1;
+ end = (*utf_ptr) + 1;*/
- if (!builtin_instanceof(params->data[cnts], class_from_descriptor(start, end, 0, CLASSLOAD_LOAD))) {
+ if (!builtin_instanceof(params->data[cnts], class_from_descriptor(start, desc_end, utf_ptr, CLASSLOAD_LOAD))) {
if (params->data[cnts] != 0) {
*exceptionptr = new_exception("java/lang/IllegalArgumentException");
return 0;
}
}
-
blk[cnt].itemtype = TYPE_ADR;
blk[cnt].item = PTR_TO_ITEM(params->data[cnts]);
break;
case '[':
{
char *start = (*utf_ptr) - 1;
- char *end;
-
+ /*char *end;
+
char ch;
while ((ch = utf_nextu2(utf_ptr)) == '[')
if (ch == 'L') {
}
end = (*utf_ptr) - 1;
- ch = utf_nextu2(utf_ptr);
+ ch = utf_nextu2(utf_ptr); */
- if (!builtin_arrayinstanceof(params->data[cnts], class_from_descriptor(start, end, 0, CLASSLOAD_LOAD)->vftbl)) {
+ if (!builtin_arrayinstanceof(params->data[cnts], class_from_descriptor(start, desc_end, utf_ptr, CLASSLOAD_LOAD)->vftbl)) {
*exceptionptr = new_exception("java/lang/IllegalArgumentException");
return 0;
}
-
+
blk[cnt].itemtype = TYPE_ADR;
blk[cnt].item = PTR_TO_ITEM(params->data[cnts]);
break;
The .hh files created with the header file generator are all
included here as are the C functions implementing these methods.
- $Id: native.c 1764 2004-12-15 16:21:20Z jowenn $
+ $Id: native.c 1771 2004-12-17 23:05:27Z jowenn $
*/
void use_class_as_object(classinfo *c)
{
if (!c->classvftbl) {
+ /* is the class loaded */
+ if (!c->loaded)
+ if (!class_load(c))
+ panic("Class could not be loaded in use_class_as_object");
+ /* is the class linked */
+ if (!c->linked)
+ if (!class_link(c))
+ panic("Class could not be linked in use_class_as_object");
+
/*if (class_java_lang_Class ==0) panic("java/lang/Class not loaded in use_class_as_object");
if (class_java_lang_Class->vftbl ==0) panic ("vftbl == 0 in use_class_as_object");*/
c->header.vftbl = class_java_lang_Class->vftbl;
Authors: Joseph Wenninger
- $Id: stacktrace.c 1735 2004-12-07 14:33:27Z twisti $
+ $Id: stacktrace.c 1771 2004-12-17 23:05:27Z jowenn $
*/
} else { /*method created by jit*/
u4 frameSize;
/*log_text("JIT");*/
+#if defined (__ALPHA__)
if (currentMethod->isleafmethod) {
#ifdef JWDEBUG
printf("class.method:%s.%s\n",currentMethod->class->name->text,currentMethod->name->text);
#endif
panic("How could that happen ??? A leaf method in the middle of a stacktrace ??");
}
+#endif
/*utf_display(currentMethod->class->name);
utf_display(currentMethod->name);*/
fillInStackTrace_method(&buffer,currentMethod,dataseg,returnAdress);