src/share/vm/utilities/growableArray.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6973963 Cdiff src/share/vm/utilities/growableArray.hpp

src/share/vm/utilities/growableArray.hpp

Print this page

        

*** 95,105 **** _len = initial_len; _max = initial_size; assert(_len >= 0 && _len <= _max, "initial_len too big"); _arena = (c_heap ? (Arena*)1 : NULL); set_nesting(); ! assert(!c_heap || allocated_on_C_heap(), "growable array must be on C heap if elements are"); } // This GA will use the given arena for storage. // Consider using new(arena) GrowableArray<T> to allocate the header. GenericGrowableArray(Arena* arena, int initial_size, int initial_len) { --- 95,108 ---- _len = initial_len; _max = initial_size; assert(_len >= 0 && _len <= _max, "initial_len too big"); _arena = (c_heap ? (Arena*)1 : NULL); set_nesting(); ! assert(!on_C_heap() || allocated_on_C_heap(), "growable array must be on C heap if elements are"); ! assert(!on_stack() || ! (allocated_on_res_area() || allocated_on_stack()), ! "growable array must be on stack if elements are not on arena and not on C heap"); } // This GA will use the given arena for storage. // Consider using new(arena) GrowableArray<T> to allocate the header. GenericGrowableArray(Arena* arena, int initial_size, int initial_len) {
*** 106,115 **** --- 109,122 ---- _len = initial_len; _max = initial_size; assert(_len >= 0 && _len <= _max, "initial_len too big"); _arena = arena; assert(on_arena(), "arena has taken on reserved value 0 or 1"); + // Relax next assert to allow object allocation on resource area, + // on stack or embedded into an other object. + assert(allocated_on_arena() || allocated_on_stack(), + "growable array must be on arena or on stack if elements are on arena"); } void* raw_allocate(int elementSize); // some uses pass the Thread explicitly for speed (4990299 tuning)
src/share/vm/utilities/growableArray.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File