8022187: Missing ResourceMark crash when assertion using FormatBufferResource fails

Tue, 01 Oct 2013 08:54:05 -0400

author
zgu
date
Tue, 01 Oct 2013 08:54:05 -0400
changeset 5787
de059a14e159
parent 5783
c1fbf21c7397
child 5788
90b27e931639

8022187: Missing ResourceMark crash when assertion using FormatBufferResource fails
Summary: Uses stack for the format buffer instead of resource memory
Reviewed-by: kvn, coleenp

src/share/vm/utilities/array.hpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/utilities/array.hpp	Wed Sep 25 17:47:51 2013 +0200
     1.2 +++ b/src/share/vm/utilities/array.hpp	Tue Oct 01 08:54:05 2013 -0400
     1.3 @@ -353,9 +353,9 @@
     1.4    // sort the array.
     1.5    bool contains(const T& x) const      { return index_of(x) >= 0; }
     1.6  
     1.7 -  T    at(int i) const                 { assert(i >= 0 && i< _length, err_msg_res("oob: 0 <= %d < %d", i, _length)); return _data[i]; }
     1.8 -  void at_put(const int i, const T& x) { assert(i >= 0 && i< _length, err_msg_res("oob: 0 <= %d < %d", i, _length)); _data[i] = x; }
     1.9 -  T*   adr_at(const int i)             { assert(i >= 0 && i< _length, err_msg_res("oob: 0 <= %d < %d", i, _length)); return &_data[i]; }
    1.10 +  T    at(int i) const                 { assert(i >= 0 && i< _length, err_msg("oob: 0 <= %d < %d", i, _length)); return _data[i]; }
    1.11 +  void at_put(const int i, const T& x) { assert(i >= 0 && i< _length, err_msg("oob: 0 <= %d < %d", i, _length)); _data[i] = x; }
    1.12 +  T*   adr_at(const int i)             { assert(i >= 0 && i< _length, err_msg("oob: 0 <= %d < %d", i, _length)); return &_data[i]; }
    1.13    int  find(const T& x)                { return index_of(x); }
    1.14  
    1.15    T at_acquire(const int which)              { return OrderAccess::load_acquire(adr_at(which)); }

mercurial