David Chisnall
2777fea77a
Enable correct behaviour with respect to ARC for objc_{g,s}etIvar().
10 years ago
theraven
741add2eb1
Fix typo in class header.
14 years ago
theraven
4c9acdf153
ARM stuff.
14 years ago
theraven
6d50cdee99
Return the correct small int class in 32-bit mode
15 years ago
theraven
4e3e71c750
Tweak 64-bit support for small objects.
15 years ago
theraven
a7d4cfd640
Make the version of libobjc generated by the makefile the one Etoile expects
15 years ago
theraven
8af52846b7
Small object (hidden in a pointer) support.
15 years ago
theraven
4e7b476aa6
Change [1] to [] for variable length structure elements (C99 - silences array out of bounds errors).
...
Added fields to the end of the class structure for strong / weak ivar bitmaps (not yet generated by any compiler).
Fixed definition of __sync_swap() so that it works on GCC again.
15 years ago
theraven
34f7baf8d7
Added a fast path for ARC. Now, if a class implements ARC-compatible retain / release / autorelease methods, we don't call them at all. Instead, we inline them in the ARC accessors. This avoids all of the overhead of the message send (lookup and call) and should make ARC quite a bit faster than manual reference counting.
15 years ago
theraven
9015795dde
Use explicitly typed memory for instances.
15 years ago
theraven
5ea9367f3d
Tweak alignment.
15 years ago
theraven
987ab88a94
Don't do hidden-class transforms for classes, just dangle the look-aside data off the class structure.
...
Individually lock classes so that +initialize can be sent concurrently to two different classes in two different threads.
15 years ago
theraven
e198597bd3
Added support for associative references. Modified sync code to use this.
15 years ago
theraven
28e6960441
Make object_getIndexedIvars() more robust against compiler bugs.
15 years ago
qmathe
10cb4f9b5c
Corrected doc in few places to refer to @synchronized() and not @synchronize()
15 years ago
theraven
7be9f34619
Fixed @synchronize() with a class that has had an instance used for @synchronize().
15 years ago
theraven
85c07b836e
Fix some warnings with -Wextra.
16 years ago
theraven
d3122bcfa4
Make sure BOOLs in class tests are always YES or NO.
...
Make self in +load the correct value (the class, not the metaclass).
16 years ago
theraven
779b28abeb
Lots of tidying, removing legacy stuff.
16 years ago
theraven
bb8cafaa15
Finished rewriting the loader. It's now cleanly separated into logically-separate components, so there's a chance it might actually be maintainable...
16 years ago
theraven
de71ebb6b1
Rewritten class loading.
16 years ago
theraven
0d78186238
Some bug fixes and tidies.
...
I now have an out-of-tree replacement for the dtable stuff, so sarray.{h,c} will be going away soon. The replacement offers similar (slightly worse currently) performance in microbenchmarks, but uses half as much memory (Gorm goes from 95MB to 48MB on my machine). This will be committed once it's been tweaked a little bit.
16 years ago
theraven
7b8b3839df
More refactoring.
16 years ago
theraven
2d84b96a72
Tidied up some bits by creating private headers for private data structures.
...
Imported selector table code frm the Étoilé runtime. We can now make dispatch type dependent with a -D switch. Not enabled yet, but it will be enabled in a warning mode soon - I consider preferable to the existing GNU and Apple solution of corrupting the stack.
16 years ago