1362 Commits (main)
 

Author SHA1 Message Date
theraven ce5b0e9f83 Added out-of-tree GCKit stuff. Still (very) work-in-progress. 16 years ago
rfm 7b535dcda4 Revert change ... leave objc_skip_offset() buggy for code which depends on that behavior. It's better just to avoid using it anywhere else. 16 years ago
rfm c8412c806d Fix objc_skip_offset() to avoid skipping and extra character 16 years ago
theraven 09ed66f819 Fixed use of uninitialized variable. 16 years ago
theraven d9ead92cb3 Fixed bug in allocating metaclasses for lock classes. 16 years ago
theraven 352e721861 Changed ptrdiff_t to int in property accessors. This is for compatibility with some changes in clang that are required to prevent things from breaking on LP64 platforms.
It would be cleaner to use a ptrdiff_t here, but unfortunately we can't because the ivar_offset field in the runtime metadata is an int so ivar offsets beyond 4GB will not work on LP64 platforms.

This probably isn't a limitation.  If you have more than 4GB of ivars in one object, you've done something badly wrong and probably shouldn't be allowed to write code anymore.
16 years ago
theraven e85975a36e Don't make NSObject a subclass of NSObject. Thanks to Truls Becken! 16 years ago
theraven 023184f4b5 Removed unused static function. 16 years ago
theraven 93251416eb Added LLVM optimisation passes for libobjc2. 16 years ago
theraven fb26e9a9ef Disable sender-aware dispatch - it breaks some code. 16 years ago
theraven ff7af18060 Correctly handle getting the name of nil. For some given value of correct, where 'correct' means 'compatible with the Apple behaviour' and not 'actually sensible'. 16 years ago
theraven a35ece500f Rewrote objc_getClassList() to use class table directly.
Fixed missing UNLOCK() from last commit.
16 years ago
theraven 0abdc2a574 Small cleanups from last commit. 16 years ago
theraven 8ce32fd1c9 Rewrote class resolving code. Now it only resolves classes that actually need resolving, rather than iterating over the entire class table.
(This is part 1.  Part 2 will lazily resolve classes.)
16 years ago
theraven bfbd52709b Fixed off-by-one error in hash table enumerator, which was causing one class to fail to be resolved. 16 years ago
theraven 492b2315c1 Rewrote property locking to be faster and not require @synchronized (which breaks if you call it in the object's -dealloc method). 16 years ago
theraven 71be4a20f3 Made magic object header use #define instead of const (gets rid of unused variable warnings). 16 years ago
rfm 5eb97d0e38 fix missing line 16 years ago
rfm 76845ff81c fix wrong commit 16 years ago
rfm b7963e23a6 backport class data copying fixes from ObjectiveC2 16 years ago
rfm bc0ad88a82 complete backport 16 years ago
rfm e2f4f38e45 backport bugfixes from ObjectiveC2 code 16 years ago
rfm bf92e25952 match ivar lookup with osx and compatibility library 16 years ago
rfm 607bc433c9 Fix instance variable lookup to match OSX 16 years ago
theraven 719b540317 Set resolve / initialize flags for new metaclasses. 16 years ago
theraven 01559280f3 Fixed LOCK() -> UNLOCK().
Thanks to TOM!
16 years ago
theraven ae11414b4d Handle case where @synchronized is used with a class. 16 years ago
rfm 196ce9abb1 Cope with null selector/selecotr name as in OSX 16 years ago
rfm 301c01b2ae slightly more rigorous dtable handling. 16 years ago
theraven eee7956bce Cleaner version of the last fix. 16 years ago
theraven d4fe4f522e Fixed typo in comment in runtime.c.
Fixed unsafe dtable access in message lookup.
16 years ago
theraven d770ed9688 Correct version of last fix... 16 years ago
theraven de4b63e41d Fix for root class using non-fragile ABI. 16 years ago
rfm d89b28c40c check for nil superclass before dereferencing 16 years ago
theraven fa488d6cea Fix for non-fragile ivar fixup when classes are loaded in the wrong order. 16 years ago
rfm 0e7441570b fixup bad function prototype 16 years ago
rfm fb97e23e50 fix class_respondsToSelector() 16 years ago
rfm 5786a73e46 I'm pretty sure that, when resizing a table, we want to copy the non-null nodes rather than the null ones. 16 years ago
rfm 45b2641793 allow link with toydispatch 16 years ago
theraven 2350156aba More GCKit work. Most stuff is working now, with the big exception being tracing of collectable regions. Test case demonstrates this failure and the success of everything else. 16 years ago
theraven 81f0c58a86 Fixed const warning. 16 years ago
theraven 7c03c0d3f1 Fixed double-free problems in GCKit. Fixed removal from hash tables. Added enumerator helper for when you remove objects from a map while enumerating. Removed tracing statements that were identifying bugs that have now been fixed. 16 years ago
theraven 8642bf7b8d Fixed statement order in hash_table.h 16 years ago
theraven 1f1c5b5b1a Added test for strong-cast assign (assign to traced memory allocated with GCAllocateCollectable()). Fixed bugs that it showed. 16 years ago
theraven 5b1911b4f4 Initial commit of GCKit (moved from Étoilé and the missing 90% mostly implemented). GCKit implements cycle detection on the heap and tracing on the stack and designated heap regions, with support for weak references. It is designed for implementing OS X 10.5-compatible GC semantics.
Although GCKit is mostly finished, it is still not well tested.  It contains bugs, and possibly dragons.  Do not use it.  If you disregard this advice, do not file any bug reports.  If you disregard this instruction, then I will point and laugh at you.
16 years ago
theraven ffc041fc82 Added missing file. 16 years ago
theraven 8058495e39 Fix crash with gcc-compiled protocols. 16 years ago
theraven c1a637a990 Allowed hash tables to dynamically resize. This uses toydispatch to free the old version of the table after copying all of the data into the new one, after waiting enough time to allow all potential readers to finish. There are theoretical cases when this can fail, but hopefully no practical ones. The theoretical cases can be removed by making the garbage thread run at a lower priority than all of the other threads in the system.
The protocols table and the class table will now grow as required.  Protocols are now added to the protocols table as they are created, so you should get something sensible and introspectable back when you look up a protocol by name.
16 years ago
theraven 98a2cd07d4 Removed debugging line included by accident with last commit. 16 years ago
theraven 614e20229e Fixed copy and paste error in toydispatch. 16 years ago