Minor memory issues in fastdebug build

Mikael Vidstedt mikael.vidstedt at oracle.com
Thu Jan 10 17:30:31 PST 2013


The fix looks good.

I've already prepared the change set for the other fix but let's work 
together on getting this one in too!

Cheers,
Mikael

On 1/9/2013 1:52 AM, David Holmes wrote:
> Jeremy,
>
> I didn't see any follow up on this, nor do I see a bug, so I created 
> 8005921: Memory leaks in vmStructs.cpp
>
> These fixes look fine to me.
>
> I know Mikael is in the process of doing some vmStructs changes at the 
> moment so perhaps I can put him on the spot and see if he could 
> sponsor this at the same time.
>
> Thanks,
> David
>
> On 13/12/2012 10:11 AM, Jeremy Manson wrote:
>> Hi folks,
>>
>> I was playing with the fastdebug build, and I found a couple of
>> trivial memory issues.  A patch follows: let me know if you want me to
>> do some footwork to correct it (file a bug, etc).
>>
>> Jeremy
>>
>> diff -r 121aa71316af src/share/vm/runtime/vmStructs.cpp
>> --- a/src/share/vm/runtime/vmStructs.cpp        Fri Dec 07 10:46:54 
>> 2012 -0800
>> +++ b/src/share/vm/runtime/vmStructs.cpp        Wed Dec 12 16:05:25 
>> 2012 -0800
>> @@ -3146,10 +3146,10 @@
>>       s[len-1] = '\0';
>>       // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
>>       if (recursiveFindType(origtypes, s, true) == 1) {
>> -      delete s;
>> +      delete [] s;
>>         return 1;
>>       }
>> -    delete s;
>> +    delete [] s;
>>     }
>>     const char* start = NULL;
>>     if (strstr(typeName, "GrowableArray<") == typeName) {
>> @@ -3165,10 +3165,10 @@
>>       s[len-1] = '\0';
>>       // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
>>       if (recursiveFindType(origtypes, s, true) == 1) {
>> -      delete s;
>> +      delete [] s;
>>         return 1;
>>       }
>> -    delete s;
>> +    delete [] s;
>>     }
>>     if (strstr(typeName, "const ") == typeName) {
>>       const char * s = typeName + strlen("const ");
>> @@ -3182,8 +3182,10 @@
>>       s[len - 6] = '\0';
>>       // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
>>       if (recursiveFindType(origtypes, s, true) == 1) {
>> +      free(s);
>>         return 1;
>>       }
>> +    free(s);
>>     }
>>     if (!isRecurse) {
>>       tty->print_cr("type \"%s\" not found", typeName);



More information about the hotspot-runtime-dev mailing list