[9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8 (original) (raw)
Vladimir Ivanov vladimir.x.ivanov at oracle.com
Fri Mar 17 12:58:30 UTC 2017
- Previous message: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8
- Next message: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I have the same concern. Can we fix the immediate problem in 9 and integrate verification logic in 10?
OK, Tobias is suggesting having verification logic only inside the intrinsics. Are you suggesting removing that as well?
Yes and put them back in 10.
I'm OK with removing all the verification, but that won't reduce the library changes much. I could undo the renaming to Trusted.getChar, but we would still have the bounds checks moved into StringUTF16.
I suggest to go with a point fix for 9: just add missing range checks.
Is AbstractStringBuilder.append() the only affected method? (Sorry, it's hard to say exactly where the problem is by looking at the diff.)
I really like the refactoring you propose on jdk side, but there are pieces I'm not sure about. For example, I spotted a repeated range check:
jdk/src/java.base/share/classes/java/lang/AbstractStringBuilder.java: public void setCharAt(int index, char ch) { checkIndex(index, count); if (isLatin1() && StringLatin1.canEncode(ch)) { value[index] = (byte)ch; } else { if (isLatin1()) { inflate(); } StringUTF16.putCharSB(value, index, ch); } }
Best regards, Vladimir Ivanov
- Previous message: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8
- Next message: [9] RFR(L) 8158168: SIGSEGV: CollectedHeap::fill_with_objects(HeapWord*, unsigned long, bool)+0xa8
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]