RFR(S): 8013329: [parfait] File leak in hotspot/src/share/vm/compiler/compileBroker.cpp

Roland Westrelin roland.westrelin at oracle.com
Tue May 28 06:21:08 PDT 2013

Hi Albert,

>> FREE_C_HEAP_ARRAY is for arrays allocated with NEW_C_HEAP_ARRAY. You should use delete here, I think (even though FREE_C_HEAP_ARRAY and delete end up doing the same).
> The char array is allocated with NEW_HEAP_ARRAY in compileBroker.cpp. In the new version, I moved
> the allocation of the array into the constructor of CompileLog. I think that this makes the code better readable. Do you agree?

You're right. I misread the code.
It's better if it's allocated from the constructor and freed from the destructor, indeed.
Your change to CompileBroker::init_compiler_thread_log() is not entirely correct, I believe: if several temp dirs are tried, and the first ones fail, "Cannot open log file:" will be reported for the failed attempt even if the log file is successfully open in the end.

>> In CompileLog::finish_log_on_error, you delete log but use it afterwards log = log->_next.
> Ouch :-( Thanks for this one. I think the current version should be fine.

I think so as well.


More information about the hotspot-compiler-dev mailing list