Request for review: 8000797: NPG: is_pseudo_string_at() doesn't work (original) (raw)
Coleen Phillimore coleen.phillimore at oracle.com
Wed Feb 20 10:20:38 PST 2013
- Previous message: code review test fix for RedefineSubclassWithTwoInterfaces.sh (8008352)
- Next message: Request for review: 8000797: NPG: is_pseudo_string_at() doesn't work
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Since nobody replied to my code review request, I modified the change.
Summary: Add JVM_CONSTANT_PseudoString in place of JVM_CONSTANT_Object and use this tag to distinguish patched pseudo strings. The original string is retained if it was present.
I'm not sure how class file reconstitution for pseudo-strings is going to work, but I thought it was prudent to leave the Symbol* in the slot for the patched string.
I noticed that JVM_CONSTANT_Object is no longer used so reused that constant to be PseudoString. I had an edit to go in the other direction (if a pseudo-string is patched into a constant pool, make it a JVM_CONSTANT_Object), but this didn't fully capture that the constant pool slot also points to a Symbol. John or Christian, can you confirm that you don't plan to use object constants anymore?
open webrev at http://cr.openjdk.java.net/~coleenp/8000797/ bug link at http://bugs.sun.com/view_bug.do?bug_id=8000797
Tested with vm.quick.testlist (including parallel_class_loading and mlvm tests) and java/lang/invoke and java/lang/instrument tests.
Thanks, Coleen
On 2/8/2013 4:59 PM, Coleen Phillimore wrote:
Summary: Null out the original string when patching constant pool with pseudo-string
This call ispseudostring() conditionalized a pseudostringat() call, but since it always failed, it went to stringat() which returned the same thing. The only thing that seems to treat pseudo-string and regular strings differently is the verifier. The verifier pushes an object for pseudo string vs. an object of type java/lang/String. open webrev at http://cr.openjdk.java.net/~coleenp/8000797/ bug link at http://bugs.sun.com/viewbug.do?bugid=8000797 Tested with vm.mlvm.testlists and java/lang/invoke tests. Thanks, Coleen
- Previous message: code review test fix for RedefineSubclassWithTwoInterfaces.sh (8008352)
- Next message: Request for review: 8000797: NPG: is_pseudo_string_at() doesn't work
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]