Commit Graph

30 Commits

Author SHA1 Message Date
theraven
58a574b34f Fixed a great many property introspection bugs and added test case.
Test case by Jean-Charles Bertin!
2013-02-28 14:09:00 +00:00
theraven
aeb0c913b9 Enabled property attribute test, fixed failure. 2013-01-09 21:50:11 +00:00
theraven
d1f3463ac7 Make sure that there is always a comma between T and V in property attributes. 2013-01-09 18:56:05 +00:00
theraven
d0562d2127 Added helper function for C++ non-POD type atomic properties.
Fixed prototypes of specialised property functions.
2012-12-17 15:51:19 +00:00
theraven
a9be008911 Add optimised special-case property function. 2012-12-17 12:52:16 +00:00
theraven
713957f9d2 Fix lookup of properties after getting their attributes. 2012-12-11 17:30:04 +00:00
theraven
c7419155d5 Add some explicit NULL checks in property introspection code. 2012-12-10 16:38:15 +00:00
theraven
abc1d44c9c Fix handling of properties that refer to an instance variable other than the
default.
2012-10-17 09:02:45 +00:00
theraven
cdc31c6c0d Fix class_addProperty().
Reported by Luboš Doležel!
2012-10-09 12:35:54 +00:00
theraven
3c8407c41d Fix incorrect malloc size. 2011-11-21 23:19:06 +00:00
theraven
dc8be2905e Add explicit cast to silence a warning. 2011-10-22 22:04:43 +00:00
theraven
4796a41e4e Finished implementing the new runtime APIs. 2011-10-11 18:42:34 +00:00
theraven
663995f08c Small cleanup. Use the ARC functions for retain / release / autorelease messages everywhere. This will make properties faster if we're using an ARC-compatible NSObject. 2011-07-04 20:58:46 +00:00
theraven
fe5d1b892a Tweak GC check, make sure GC_init() is called even when ObjC code isn't using GC (stuff internal to the runtime may be) 2011-05-28 14:38:02 +00:00
theraven
e05c9c2ff5 More GC fixes 2011-05-26 13:28:31 +00:00
theraven
01237af0fc Add GC-aware property accessors (in GC mode, we don't need all of the atomic juggling, because the GC looks after that stuff for us). 2011-05-25 12:15:58 +00:00
theraven
76ef007766 Actually return the correct value in case of races. 2011-04-29 11:21:59 +00:00
theraven
94f72f539b Fixed thread safety for constructing property attributes. 2011-04-29 11:19:42 +00:00
theraven
8ee4d9c38a Added implementation of property_getAttributes(). This is a horrible interface, both to implement and to use. We should add some better interfaces. 2011-04-28 20:36:36 +00:00
theraven
e198597bd3 Added support for associative references. Modified sync code to use this. 2011-04-15 11:20:37 +00:00
theraven
b416b31957 Property sizes should be specified in ptrdiff_t sizes. 2011-02-23 13:58:24 +00:00
theraven
661d406a8c Added property structure copy functions. 2010-12-26 21:34:23 +00:00
ericwa
d56930241e Stylistic fixes 2010-09-26 19:39:39 +00:00
ericwa
ed1c9d41eb libobjc2: Add a pile of NULL checks. In general, any public function should be able to handle NULL for any object/class/selector/pointer to opaque structure without blowing up. 2010-09-25 20:56:19 +00:00
theraven
025688a2d5 Added property_getName(). Added non-portable API documentation. 2010-09-21 13:51:47 +00:00
theraven
d70523947b Implement some missing runtime functions. 2010-09-21 13:05:24 +00:00
ericwa
7a2c302c5f libobjc2: tweaks to build on Windows 2010-09-03 21:08:06 +00:00
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.
2010-03-23 16:11:57 +00:00
theraven
492b2315c1 Rewrote property locking to be faster and not require @synchronized (which breaks if you call it in the object's -dealloc method). 2010-03-11 12:55:31 +00:00
theraven
baed61c3e6 Added property support functions, NSBlock base classes and uncaught exception handler. 2009-11-17 21:13:41 +00:00