The pointer subtraction in the klassVtable ctor to compute _tableOffset is unsafe in a 64-bit VM.
public:
klassVtable(KlassHandle h_klass, void* base, int length) : _klass(h_klass) {
_tableOffset = (address)base - (address)h_klass(); _length = length;
}
Spotted by Peter Kessler.
public:
klassVtable(KlassHandle h_klass, void* base, int length) : _klass(h_klass) {
_tableOffset = (address)base - (address)h_klass(); _length = length;
}
Spotted by Peter Kessler.