src/share/vm/prims/whitebox.cpp

Print this page
rev 3388 : imported patch dcmd-fixes


  96   fieldDescriptor fd;
  97 
  98   klassOop res = ik->find_field(name_symbol, signature_symbol, &fd);
  99   if (res == NULL) {
 100     tty->print_cr("Invalid layout of %s at %s", ik->external_name(),
 101         name_symbol->as_C_string());
 102     fatal("Invalid layout of preloaded class");
 103   }
 104 
 105   //fetch the field at the offset we've found
 106   int dest_offset = fd.offset();
 107 
 108   return dest_offset;
 109 }
 110 
 111 
 112 const char* WhiteBox::lookup_jstring(const char* field_name, oop object) {
 113   int offset = offset_for_field(field_name, object,
 114       vmSymbols::string_signature());
 115   oop string = object->obj_field(offset);



 116   const char* ret = java_lang_String::as_utf8_string(string);
 117   return ret;
 118 }
 119 
 120 bool WhiteBox::lookup_bool(const char* field_name, oop object) {
 121   int offset =
 122       offset_for_field(field_name, object, vmSymbols::bool_signature());
 123   bool ret = (object->bool_field(offset) == JNI_TRUE);
 124   return ret;
 125 }
 126 
 127 
 128 #define CC (char*)
 129 
 130 static JNINativeMethod methods[] = {
 131   {CC"getObjectAddress",   CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectAddress  },
 132   {CC"getHeapOopSize",     CC"()I",                   (void*)&WB_GetHeapOopSize    },
 133   {CC "parseCommandLine",
 134       CC "(Ljava/lang/String;[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;",
 135       (void*) &WB_ParseCommandLine




  96   fieldDescriptor fd;
  97 
  98   klassOop res = ik->find_field(name_symbol, signature_symbol, &fd);
  99   if (res == NULL) {
 100     tty->print_cr("Invalid layout of %s at %s", ik->external_name(),
 101         name_symbol->as_C_string());
 102     fatal("Invalid layout of preloaded class");
 103   }
 104 
 105   //fetch the field at the offset we've found
 106   int dest_offset = fd.offset();
 107 
 108   return dest_offset;
 109 }
 110 
 111 
 112 const char* WhiteBox::lookup_jstring(const char* field_name, oop object) {
 113   int offset = offset_for_field(field_name, object,
 114       vmSymbols::string_signature());
 115   oop string = object->obj_field(offset);
 116   if (oopDesc::is_null(string)) {
 117     return NULL;
 118   }
 119   const char* ret = java_lang_String::as_utf8_string(string);
 120   return ret;
 121 }
 122 
 123 bool WhiteBox::lookup_bool(const char* field_name, oop object) {
 124   int offset =
 125       offset_for_field(field_name, object, vmSymbols::bool_signature());
 126   bool ret = (object->bool_field(offset) == JNI_TRUE);
 127   return ret;
 128 }
 129 
 130 
 131 #define CC (char*)
 132 
 133 static JNINativeMethod methods[] = {
 134   {CC"getObjectAddress",   CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectAddress  },
 135   {CC"getHeapOopSize",     CC"()I",                   (void*)&WB_GetHeapOopSize    },
 136   {CC "parseCommandLine",
 137       CC "(Ljava/lang/String;[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;",
 138       (void*) &WB_ParseCommandLine