67 Commits (2855d1771478e1e368fcfeb4d56aecbb4d9429ca)

Author SHA1 Message Date
theraven 6c7cf4a5a6 Add visibility attributes on all internal functions so that we aren't ever exporting them outside of libobjc. 15 years ago
theraven a2db6f58be Made the selector name field into a union of the name (unregistered selectors) and the selector id / index (registered selectors), to more accurately reflect how it is used in the code. 15 years ago
theraven e11e8dee46 Tweak ordering when creating dtables to fix an irritating corner case in +initialize calls. 15 years ago
theraven 7be9f34619 Fixed @synchronize() with a class that has had an instance used for @synchronize(). 15 years ago
theraven e9b129d878 Added low memory profile to libobjc2. This uses a more NeXT-style dtable design, which gives better memory usage at the cost of (significantly) worse worst-case performance. The memory savings seem to be only about 10% in the apps I've tested (Gorm, edlc), so it's probably not worthwhile, but it might be useful for someone finding stuff is just starting to swap... 16 years ago
theraven 121e14a3b8 Small cleanup of dtable code. 16 years ago
theraven 0e374db1db Added support for type-dependent dispatch to libobjc2. 16 years ago
theraven 779b28abeb Lots of tidying, removing legacy stuff. 16 years ago
theraven b1b9baf382 Finished rewrite of message sending. Deleted lots of 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
qmathe 55a62b527f Removed unused variable that prevents compilation by being treated as an error 16 years ago
theraven 8a451d212c More dtable fixes - now the EtoileFoundation tests work when compiled with GCC too. Hopefully that's all of the irritating corner cases in category loading dealt with... 16 years ago
theraven e482b6986f More fixes for the new dtable. Now passing all of the EtoileFoundation tests, which do lots of things involving categories, so make a good stress test.
No longer installs headers by default.  This is because GNUstep Make notices when the objc headers have changed (because GNUstep includes them) and so reinstalling libobjc2 was requiring a complete recompile of anything that you tried to build, even if you only changed one line.  A better fix for this would be for install to use cmp or diff to check if the header has been modified before installing it, but I'm too lazy to do that right now.
16 years ago
theraven 7a9b105817 Fixed missing ! in dtable construction code, which meant that class methods were being preferred to category methods. 16 years ago
theraven c40f9e84f2 Return NULL instead of "" from sel_getTypes_np() - matches behaviour of sel_get_types() and makes more sense. 16 years ago
theraven 1a60fabf96 More 64-bit fixes. 16 years ago
theraven d36b939232 Actually commit the new dtable implementation this time... 16 years ago