8007902: [unpack200] incorrect BootstrapMethods attribute
Reviewed-by: jjh
This commit is contained in:
parent
8a4107ab64
commit
83b9b38fc5
jdk
src/share/native/com/sun/java/util/jar/pack
test/tools/pack200
@ -4758,8 +4758,8 @@ int unpacker::write_bsms(int naOffset, int na) {
|
||||
PTRLIST_QSORT(cp.requested_bsms, outputEntry_cmp);
|
||||
// append the BootstrapMethods attribute (after the InnerClasses attr):
|
||||
putref(cp.sym[cpool::s_BootstrapMethods]);
|
||||
// make a note of the offset, for lazy patching
|
||||
int sizeOffset = (int)wpoffset();
|
||||
byte* sizewp = wp;
|
||||
putu4(-99); // attr size will be patched
|
||||
putu2(cur_class_local_bsm_count);
|
||||
int written_bsms = 0;
|
||||
@ -4776,6 +4776,7 @@ int unpacker::write_bsms(int naOffset, int na) {
|
||||
written_bsms += 1;
|
||||
}
|
||||
assert(written_bsms == cur_class_local_bsm_count); // else insane
|
||||
byte* sizewp = wp_at(sizeOffset);
|
||||
putu4_at(sizewp, (int)(wp - (sizewp+4))); // size of code attr
|
||||
putu2_at(wp_at(naOffset), ++na); // increment class attr count
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,7 +30,7 @@ import java.util.jar.*;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 6521334 6712743
|
||||
* @bug 6521334 6712743 8007902
|
||||
* @summary check for memory leaks, test general packer/unpacker functionality\
|
||||
* using native and java unpackers
|
||||
* @compile -XDignore.symbol.file Utils.java Pack200Test.java
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user