GC and malloced NSData

  • I've got another question about GC support. The docs say that stuff in
    the malloc zone is not the garbage collectable. However, objects like
    NSData and NSString have initializers to take over possession of
    malloced bytes like -initWithDataNoCopy:length:, and obj-c objects
    generally are collectable. So it would seem to me very well possible
    that those obj-c objects should be able to clean up the data in -
    finalize, no matter where it is. So now I wonder if code like below is
    GC safe. I could not find anything in the docs either way.

    char *bytes = (char *)NSZoneMalloc(NSDefaultMallocZone(), sizeof(char)
    * size);
    get_data_using_some_c_lib_function(name, buffer, size);
    NSData *data = [NSData dataWithBytesNoCopy:buffer length:size];

    Thanks,
    Christiaan