src/share/vm/oops/constantPool.cpp

Print this page

        

@@ -1707,14 +1707,19 @@
         break;
       }
       case JVM_CONSTANT_String: {
         *bytes = JVM_CONSTANT_String;
         Symbol* sym = unresolved_string_at(idx);
+        if (is_pseudo_string_at(idx)) {
+          idx1 = get_pseudo_string_utf8_index(idx);
+          assert(idx1 != 0, "Have not found a pseudo-string placeholder entry");
+        } else {
         idx1 = tbl->symbol_to_value(sym);
         assert(idx1 != 0, "Have not found a hashtable entry");
+        }
         Bytes::put_Java_u2((address) (bytes+1), idx1);
-        DBG(printf("JVM_CONSTANT_String: idx=#%03hd, %s", idx1, sym->as_utf8()));
+        DBG(printf("JVM_CONSTANT_String: idx=#%03hd, %s", idx1, sym == NULL ? "NULL" : sym->as_utf8()));
         break;
       }
       case JVM_CONSTANT_Fieldref:
       case JVM_CONSTANT_Methodref:
       case JVM_CONSTANT_InterfaceMethodref: {