[cxx-abi-dev] __cxa_demangle memory ownership issue
    Howard Hinnant 
    hinnant at twcny.rr.com
       
    Thu Jan 20 14:07:40 UTC 2011
    
    
  
On Jan 20, 2011, at 1:31 AM, Dennis Handly wrote:
>> From: Howard Hinnant <hhinnant at apple.com>
>> char* __cxa_demangle(const char* mangled_name, char* buf, size_t* n,
>> 				   int* status);
> 
>> If buf and n are non-null and if __cxa_demangle returns NULL (e.g.
>> because of an invalid mangled_name), does __cxa_demangle free(buf) or
>> not?  The spec seems ambiguous on this point.
> 
> My implementation never frees anything unless it is too small.
> 
> The spec isn't ambiguous if you assume you do ONLY what is mentioned under
> Memory management.
Ok, thanks.
I guess it seemed ambiguous to me only because I'm used to C++ memory ownership patterns and I thought of the client passing ownership in buf and receiving it back in the return value (e.g. like you would do with auto_ptr).
-Howard
    
    
More information about the cxx-abi-dev
mailing list