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