Now that the 10.6 autozone has been pushed out to the world ( http://www.opensource.apple.com/source/autozone/autozone-141/ ), I'm wondering if anyone has any pointers to hacking on the source. It looks like there's no documentation included in the distribution, and coming up to speed on a code base in a vacuum is never fun.
Specifically, I'm interested in the bits and pieces of autozone that would deal with supporting "Interior Pointers" (or the lack there-of in the current implementation). I have no idea how the collector is organized, so most of this is just hunches on how I think it does things internally. I suspect this is going to cover at least two areas in the code:
1) Scanning for pointers. At some point, the scanner probably calls "some function" to determine if a given pointer, say void *p, is a base pointer that has been previously allocated by the collector. This is obviously going to have to check the 'void *p' argument against the pointers returned by the allocator to fulfill allocation requests.
2) Data structures and logic for fulfilling allocations. The code that determines which "allocation chunk" size is used to fulfill an allocation request. Most malloc() allocators have a set of chunk sizes that they pick from to fulfill a given request, with the allocation size request effectively rounded up to the chunk size. AFAIK, the Mac OS X ABI requires that all malloc() returned pointers to be % 16, at least I think it's % 16. The pointer needs to be aligned for any data type, including SIMD data types.
Pointers to the correct files and functions that accomplish the above would be appreciated, or if that's the wrong place to start digging in to the code, recommendations on where to start. Also, any hints as to where the problems are in supporting interior pointers in the current implementation (which makes the assumption that the problem is within autozone, but that seems fairly safe). Links to documentation would be a big plus, too.
Do not post admin requests to the list. They will be ignored.
Objc-language mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden