+java_objectarray *builtin_asm_createclasscontextarray(classinfo **end,classinfo **start) {
+#warning platform dependend
+ java_objectarray *tmpArray;
+ int i;
+ classinfo **current;
+ classinfo *c;
+ size_t size=(((size_t)start)-((size_t)end)) / sizeof (classinfo*);
+ printf("end %p, start %p, size %ld\n",end,start,size);
+ if (!class_java_lang_Class)
+ class_java_lang_Class = class_new(utf_new_char ("java/lang/Class"));
+ tmpArray=builtin_newarray(size, class_array_of(class_java_lang_Class)->vftbl);
+
+ for(i=0,current=start;i<size;i++,current--) {
+ c=*current;
+ printf("%d\n",i);
+ utf_display(c->name);
+ use_class_as_object(c);
+ tmpArray->data[i]=c;
+ }
+ return tmpArray;
+
+}
+
+java_lang_ClassLoader *builtin_asm_getclassloader(classinfo **end,classinfo **start) {
+#warning platform dependend
+ int i;
+ classinfo **current;
+ classinfo *c;
+ classinfo *privilegedAction;
+ size_t size=(((size_t)start)-((size_t)end)) / sizeof (classinfo*);
+ log_text("builtin_asm_getclassloader");
+ printf("end %p, start %p, size %ld\n",end,start,size);
+
+ privilegedAction=class_new(utf_new_char("java/security/PrivilegedAction"));
+
+ for(i=0,current=start;i<size;i++,current--) {
+ c=*current;
+ if (c==privilegedAction) return NULL;
+ if (c->classloader) return c->classloader;
+ }
+ return NULL;
+
+
+
+
+/*
+ log_text("Java_java_lang_VMSecurityManager_currentClassLoader");
+ init_systemclassloader();
+
+ return SystemClassLoader;*/
+}
+