comparison src/share/vm/ci/ciMethodBlocks.cpp @ 1685:0e35fa8ebccd

6973963: SEGV in ciBlock::start_bci() with EA Summary: Added more checks into ResourceObj and growableArray to verify correctness of allocation type. Reviewed-by: never, coleenp, dholmes
author kvn
date Tue, 03 Aug 2010 15:55:03 -0700
parents c18cbe5936b8
children f95d63e2154a
comparison
equal deleted inserted replaced
1684:66c5dadb4d61 1685:0e35fa8ebccd
250 250
251 ciMethodBlocks::ciMethodBlocks(Arena *arena, ciMethod *meth): _method(meth), 251 ciMethodBlocks::ciMethodBlocks(Arena *arena, ciMethod *meth): _method(meth),
252 _arena(arena), _num_blocks(0), _code_size(meth->code_size()) { 252 _arena(arena), _num_blocks(0), _code_size(meth->code_size()) {
253 int block_estimate = _code_size / 8; 253 int block_estimate = _code_size / 8;
254 254
255 _blocks = new(_arena) GrowableArray<ciBlock *>(block_estimate); 255 _blocks = new(_arena) GrowableArray<ciBlock *>(_arena, block_estimate, 0, NULL);
256 int b2bsize = _code_size * sizeof(ciBlock **); 256 int b2bsize = _code_size * sizeof(ciBlock **);
257 _bci_to_block = (ciBlock **) arena->Amalloc(b2bsize); 257 _bci_to_block = (ciBlock **) arena->Amalloc(b2bsize);
258 Copy::zero_to_words((HeapWord*) _bci_to_block, b2bsize / sizeof(HeapWord)); 258 Copy::zero_to_words((HeapWord*) _bci_to_block, b2bsize / sizeof(HeapWord));
259 259
260 // create initial block covering the entire method 260 // create initial block covering the entire method