diff src/share/vm/utilities/ostream.cpp @ 11136:dbc0b5dc08f5

7143807: ResourceMark nesting problem in stringStream Reviewed-by: kvn, dcubed
author fparain
date Wed, 10 Jul 2013 15:49:15 +0000
parents 0598674c0056
children 6b0fd0964b87 621eda7235d2 01b268b3080a bdd155477289
line wrap: on
line diff
--- a/src/share/vm/utilities/ostream.cpp	Tue Jul 09 22:48:52 2013 +0200
+++ b/src/share/vm/utilities/ostream.cpp	Wed Jul 10 15:49:15 2013 +0000
@@ -296,6 +296,7 @@
   buffer        = NEW_RESOURCE_ARRAY(char, buffer_length);
   buffer_pos    = 0;
   buffer_fixed  = false;
+  DEBUG_ONLY(rm = Thread::current()->current_resource_mark();)
 }
 
 // useful for output to fixed chunks of memory, such as performance counters
@@ -321,6 +322,8 @@
         end = buffer_length * 2;
       }
       char* oldbuf = buffer;
+      assert(rm == NULL || Thread::current()->current_resource_mark() == rm,
+             "stringStream is re-allocated with a different ResourceMark");
       buffer = NEW_RESOURCE_ARRAY(char, end);
       strncpy(buffer, oldbuf, buffer_pos);
       buffer_length = end;