ObjFW  All files named ”src/OFObject.m”

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Ancestors of file src/OFObject.m from check-in 1ba08eebc5

2015-10-19
22:15
Add platform.h & make platform defines consistent file: [fa72960651] check-in: [1ba08eebc5] user: js branch: trunk, size: 24529
2015-08-26
08:50
Make sure of_hash_seed is never initialized to 0 of_hash_seed == 0 is special, as it means to OFMapTable to behave deterministically (which is required for the tests, for example) and not do any random per-hashtable rotating on the hash. The random rotation improves resistance against hash collision DoS attacks, so if the random seed happens to be 0, it would disable that rotation unintentionally, thus it's better to get a new random seed if it is 0. file: [920a5b1adb] check-in: [50e4ae0716] user: js branch: trunk, size: 24525
2015-03-30
21:33
Add OF_NO_RETURN_FUNC OF_NO_RETURN_FUNC is defined when __attribute__((__noreturn__)) is supported for functions, whereas OF_NO_RETURN is only defined when it is supported for both functions and methods. file: [8a0142f57a] check-in: [ffb39d1df6] user: js branch: trunk, size: 24459
2015-02-01
00:47
Reduce code size for OF_UNRECOGNIZED_SELECTOR file: [11cea8a285] check-in: [e0c84651d6] user: js branch: trunk, size: 24449
2015-01-03
20:57
Update copyright file: [b4471e2926] check-in: [cfd374b906] user: js branch: trunk, size: 24423
2014-10-04
21:59
Add +[OFSystemInfo native8BitEncoding] This replaces +[OFString nativeOSEncoding]. file: [da02b5a0e1] check-in: [ec66e49dca] user: js branch: trunk, size: 24417
2014-08-23
01:01
Make ObjFW.framework a module This makes it possible to import ObjFW from Swift. file: [d6054ff862] check-in: [c8a562d8d7] user: js branch: trunk, size: 24356
2014-06-21
21:43
Move all macros from OFObject.h to macros.h This means that OFObject.h imports macros.h now, making it unnecessary to manually import macros.h in almost every file. And while at it, also import autorelease.h in OFObject.h, so that this doesn't need to be manually imported in almost every file as well. file: [dcda168113] check-in: [13ee56edf3] user: js branch: trunk, size: 24172
2014-05-15
15:32
Multiple dtable / sparse array improvements * dtable.m is now the old sparse array, using IMP as type for values and thus not violating the C standard anymore (functions may not be stored in void*) * New sparsearray.m which can work with any size, based on the sparse array from the fast path of class.m * Fast path of class.m now uses the new sparsearray.m file: [31f7e1ca7d] check-in: [1ebb9eb7b3] user: js branch: trunk, size: 24216
15:17
Work around Apple's API breaking the C standard file: [a836174d3d] check-in: [469553637d] user: js branch: trunk, size: 24106
01:50
Don't define _*_SOURCE Instead, just define _GNU_SOURCE when __GLIBC__ is defined. After all, that's the only libc that doesn't work properly without any defines. file: [0c79230d37] check-in: [17be12b6e5] user: js branch: trunk, size: 24090
2014-05-05
01:08
Improve atomics API file: [e8aca19951] check-in: [a92844520a] user: js branch: trunk, size: 24111
2014-03-30
00:30
ObjFW-RT: Call +[unload] on class unregister file: [f3bed53382] check-in: [1ecef2d7f6] user: js branch: trunk, size: 24113
2014-02-13
23:26
Use -std=c11 instead of -std=gnu11 Not using -std=gnu11 means _GNU_SOURCE does not get defined anymore, therefore this commit also adds the required feature defines for glibc. Additionally, this adds of_strdup in macros.h, as strdup is an extension. file: [f4d9610474] check-in: [2f5af58573] user: js branch: trunk, size: 24093
2014-01-16
23:38
Add +[OFString nativeOSEncoding]. This replaces OF_STRING_ENCODING_NATIVE, as a define was not flexible enough (determining the native OS encoding at startup was not possible). file: [ca87b4ce10] check-in: [e54c8c0368] user: js branch: trunk, size: 24072
23:09
Add of_time_interval_t. This is used instead for time intervals now instead of doubles. file: [12e6e740e4] check-in: [dc31ce3d34] user: js branch: trunk, size: 24068
2014-01-12
23:38
Add -[superclass] to OFObject protocol. file: [3b4e65cff2] check-in: [4c6d9b7c1b] user: js branch: trunk, size: 23996
2014-01-04
00:24
Update copyright. file: [c604df4ce7] check-in: [3b97fc3cd9] user: js branch: trunk, size: 23919
2013-12-27
02:07
Rework forwarding API and ABI. It matches the Apple API and ABI now and the forwarding handler itself determines whether it should forward or not. This moves handling of +[resolve{Class,Instance}Method:] to the runtime and allows adding new kinds of forwarding without changing the runtime. Also fixes a potential stack problem in the forwarding for MIPS. file: [a55f4922cc] check-in: [0c332aa2d2] user: js branch: trunk, size: 23913
2013-12-21
12:58
-[performSelector:]: Use the normal dispatch. This has the advantage of being faster. file: [e741aba66a] check-in: [3dac86b429] user: js branch: trunk, size: 25634
2013-12-20
00:14
runtime: More consistency in the API. file: [9bd5d20560] check-in: [2dec88a9d5] user: js branch: trunk, size: 25572
2013-12-15
18:11
Silence a few of Clang Analyzer's false positives. file: [704b6761d2] check-in: [d0b98b417d] user: js branch: trunk, size: 25562
2013-12-07
17:30
macros.h: Add OF_BIGGEST_ALIGNMENT. When the compiler supports C11, _Alignof(max_align_t) is used; otherwise the __BIGGEST_ALIGNMENT__ define is tried with a fallback to 16. file: [fcedcc72d4] check-in: [fdfb2be253] user: js branch: trunk, size: 25514
2013-12-05
17:48
Make coding style consistent. A file documenting the coding style will be written soon. This will hopefully prevent conflicts in the future, such as whether static functions are written in camelCase or_with_underscores, like was the case here. file: [585ebe6665] check-in: [fa6496efc7] user: js branch: trunk, size: 25518
2013-11-23
01:27
Add OF_UNRECOGNIZED_SELECTOR. file: [7af9301010] check-in: [6e19bd47ee] user: js branch: trunk, size: 25551
2013-11-22
23:24
runtime: Add support for non-fragile ivars. file: [8e2d9bc735] check-in: [3780f1462e] user: js branch: trunk, size: 25719
2013-08-12
21:59
OFZIPArchive: Initial implementation. Still a lot to do, see list of FIXMEs in the source. file: [5387ac3c3a] check-in: [1c78b3a4db] user: js branch: trunk, size: 25719
2013-07-27
17:38
Fix a typo. file: [1d6bb87b12] check-in: [405731e798] user: js branch: trunk, size: 25736
2013-07-26
15:21
Add support for objc_msg_lookup_stret. The assembly implementations of the lookup and forwarding still need to be adjusted. Those just alias to the non-stret version for now so that linking works, meaning the behaviour is still the same as without support for objc_msg_lookup_stret for now. file: [7eff738717] check-in: [9713ad857d] user: js branch: trunk, size: 25727
2013-07-23
22:48
Allow classes in collections requiring OFCopying. file: [fd13e3d461] check-in: [7992490163] user: js branch: trunk, size: 25714
2013-06-22
12:12
Rework exceptions. This mostly removes the argument for the class in which the exception occurred. As backtraces were recently added for all platforms, the passed class does not give any extra information on where the exception occurred anymore. This also removes a few other arguments which were not too helpful. In the past, the idea was to pass as many arguments as possible so that it is easier to find the origin of the exception. However, as backtraces are a much better way to find the origin, those are not useful anymore and just make the exception more cumbersome to use. The rule is now to only pass arguments that might help in recovering from the exception or provide information that is otherwise not easily accessible. file: [87e58e39d7] check-in: [3d16a30f41] user: js branch: trunk, size: 25771
2013-06-18
21:37
Make more use of OF_STRING_ENCODING_NATIVE. file: [22ddb06ede] check-in: [7c7187345a] user: js branch: trunk, size: 25949
2013-05-22
21:09
Show a backtrace for uncaught exceptions. file: [8d2c38124f] check-in: [32230a1615] user: js branch: trunk, size: 25813
18:45
Import OFThread.h unconditionally. It's safe to always import OFThread.h now as OFThread even offers limited functionality when threads are unavailable. file: [6f6ec3f922] check-in: [d7365be372] user: js branch: trunk, size: 25532
2013-04-07
21:21
Fix Win32 #include hell. file: [51f9346050] check-in: [ec6b265428] user: js branch: trunk, size: 25593
2013-03-16
10:13
Add forwardingTargetForSelector: for AMD64/ELF. Currently, no methods returning structs are supported, see the comment in OFObject. file: [6922597523] check-in: [5a6cc94418] user: js branch: trunk, size: 25593
2013-03-04
17:20
Replace BOOL with bool. The only places where BOOL is left are those where they are required by the ABI. file: [2d5ba7013a] check-in: [c5ef582958] user: js branch: trunk, size: 24893
2013-02-18
10:38
Add -[OFDataArray initWithItemSize:capacity:]. file: [68901c9b91] check-in: [e403ca05cb] user: js branch: trunk, size: 24834
2013-01-22
02:31
OFStream: Add property for writeBufferEnabled. This also renames the getter to -[isWriteBufferEnabled]. file: [9691c753e2] check-in: [b96b150ce3] user: js branch: trunk, size: 24848
2013-01-14
23:22
OFObject: Cosmetic changes. file: [4617a114d5] check-in: [6d438629e2] user: js branch: trunk, size: 24961
2013-01-12
20:53
Clean up the feature #ifdef mess. file: [c05874ae6f] check-in: [b8ce2359f3] user: js branch: trunk, size: 24921
20:32
Fix code used when atomic ops are unavailable. file: [1c57171d5d] check-in: [20aea410be] user: js branch: trunk, size: 25010
20:21
Fix --disable-threads. file: [431202d1e9] check-in: [85b8efadbc] user: js branch: trunk, size: 25011
17:29
Rename *UsingEncoding: to *WithEncoding:. This reverts 5362941. Even though *UsingEncoding: is what Foundation uses, *WithEncoding: is more natural and is more consistent with the rest. Also, this means this restores it to the API of 0.7. file: [f14f82d06a] check-in: [9ddd33a258] user: js branch: trunk, size: 24960
2013-01-09
22:24
Update copyright. file: [4e3a5a961f] check-in: [813c00ccf0] user: js branch: trunk, size: 24961
2012-12-30
00:19
-[performSelector:]: Never call NULL. When the selector is not recognized, call -[doesNotRecognizeSelector:]. file: [2afc930247] check-in: [0389649320] user: js branch: trunk, size: 24955
2012-12-26
14:10
Add OFSystemInfo. file: [6afd10fb87] check-in: [4b637f8516] user: js branch: trunk, size: 24727
2012-12-22
15:37
Add -[doesNotRecognizeSelector:]. file: [23e21a638e] check-in: [917ce5754c] user: js branch: trunk, size: 25343
14:41
Never throw in -[typeEncodingForSelector:]. file: [9c302a662d] check-in: [77573bf01f] user: js branch: trunk, size: 25586
2012-12-15
23:31
OFString: Improved API for getting C strings. file: [5c04a02683] check-in: [e2f4c1283c] user: js branch: trunk, size: 26136
2012-12-12
18:40
Coding style. file: [517d28e9f2] check-in: [6ad5d3d8d6] user: js branch: trunk, size: 26135
2012-12-07
13:57
Revert several OFHashMap related commits. This reverts: * "Add a per-hashtable seed." (cd49c7fcb4b8dca62dccdbf6545d37d86b639eef) * "OFMapTable: Reseed on resize." (5b545165691cd9ad838c9125b02ff7c857bd4b99) * "Add of_random()." (9810f191b4e8c1612e7e55095c87e589660fbdba) * "OFMapTable: Rotate hash by a random number of bits" (3bef412217232d01f202794f7175c130afa1df8f) It turned out that these were slowing down all classes based on OFHashMap significantly. As there is still no proof that the seeded one-at-a-time hash is vulnerable to DoS, these changes were overly paranoid. While overly paranoid is usually ok, it is not if it severely impacts performance. file: [ce3e8ba58d] check-in: [6712442fad] user: js branch: trunk, size: 26100
2012-12-06
21:17
Fix Clang warnings and a typo. file: [0307a15aa9] check-in: [31d023e401] user: js branch: trunk, size: 26283
11:00
Add of_random(). file: [af5fd55d36] check-in: [f675979cf0] user: js branch: trunk, size: 26251
00:14
Improve -[hash] of OFNumber and OFObject. file: [e989a30df6] check-in: [ac51f5f0cf] user: js branch: trunk, size: 25972
2012-12-04
09:19
Randomize hashes. This prevents DoSing hashtables by creating conflicts deliberately. file: [df05949c71] check-in: [f60e4012b7] user: js branch: trunk, size: 25822
2012-11-28
19:27
Remove broken forwarding target for ObjFW-RT. While it calls the correct method, it does not pass the correct object to that code. This would need a trampoline that replaces the object, written in assembly for each platform. Therefore, it will be only available for some platforms later and the broken code will not come back. file: [2f06cacc09] check-in: [53defb95a9] user: js branch: trunk, size: 25492
2012-11-26
23:19
Implement forwarding target for Apple/ARM. file: [dfed8e0734] check-in: [5927b80b4e] user: js branch: trunk, size: 25770
2012-11-17
18:23
Implement forwarding target for Apple/PPC. file: [80381fd262] check-in: [95850c4572] user: js branch: trunk, size: 25866
2012-11-16
23:07
Implement forwarding target for Apple/i386. file: [62c904a387] check-in: [1ec18e57bc] user: js branch: trunk, size: 25826
21:16
Implement forwarding target for the Apple runtime. Only on x86_64 so far, others to follow. file: [43abec3b5d] check-in: [2b20e164d7] user: js branch: trunk, size: 25774
2012-11-14
15:39
Initial -[forwarindTargetForSelector:]. This only works with the ObjFW runtime so far. The Apple runtime will require an assembly implementation for every architecture. file: [4b4eff1419] check-in: [d3a2e59414] user: js branch: trunk, size: 25411
2012-10-21
22:12
Make GCC 4.4 happy. file: [130a752ea7] check-in: [fcade8da38] user: js branch: trunk, size: 25155
2012-10-10
10:16
Provide objc_constructInstance() when necessary. OS X < 10.6 did not have it, so it is built regardless of the selected runtime now if objc_constructInstance() hasn't been found. file: [b2fb1a5ccb] check-in: [16ba7ec477] user: js branch: trunk, size: 25178
2012-09-17
10:18
Add -[performSelectorOnMainThread:waitUntilDone:]. file: [36829d1a67] check-in: [e959c99f85] user: js branch: trunk, size: 25157
09:30
Simplify autoreleasing. file: [13e68b8637] check-in: [c9bea2982f] user: js branch: trunk, size: 23845
2012-09-16
22:31
Add -[performSelector:onThread:waitUntilDone:]. file: [5b25661283] check-in: [e9cbd5e12a] user: js branch: trunk, size: 23838
22:16
Make sure an autorelease pool is always in place. file: [5eddd9378d] check-in: [cc9601c228] user: js branch: trunk, size: 22484
21:59
Make it possible to invalidate OFTimers. file: [2de861858b] check-in: [8658d1a22a] user: js branch: trunk, size: 22467
13:23
Add -[performSelector:onThread:afterDelay:]. file: [91d44503b0] check-in: [4fd5559652] user: js branch: trunk, size: 22469
2012-09-14
06:09
Add -[OFObject performSelector:afterDelay:]. file: [6a36e235dc] check-in: [5e067285c8] user: js branch: trunk, size: 21260
2012-09-11
14:20
Add missing abort to uncaught_exception_handler. file: [9817511d97] check-in: [e58bcdedb5] user: js branch: trunk, size: 20281
2012-09-06
19:13
Add objc_{construct,destruct}Instance(). file: [2f8b3fda71] check-in: [20c584252c] user: js branch: trunk, size: 20271
2012-08-10
20:08
Directly use the runtime's autorelease pools. This greatly improves performance, as it gets rid of the overhead of OFAutoreleasePool. file: [b19596ca32] check-in: [1255f3a11a] user: js branch: trunk, size: 21277
2012-08-04
08:29
Replace a few init methods with constructors. file: [ef2b5b53fe] check-in: [c34d45798b] user: js branch: trunk, size: 21507
2012-08-03
22:37
Implement basic forwarding. No need to implement it for the Apple runtime, as the Apple runtime already tries to call these methods. file: [6f60ff9dfc] check-in: [285e1138bc] user: js branch: trunk, size: 21860
2012-07-16
23:49
Add OF_ENSURE. This is to be used when the condition includes a statement that needs to be executed, as with assert, this would not be executed anymore when NDEBUG is defined. file: [8f2badf8fb] check-in: [417b213d41] user: js branch: trunk, size: 20376
22:44
Don't require extra parentheses for OF_(UN)LIKELY. file: [edc6b04857] check-in: [ff8b2a6c29] user: js branch: trunk, size: 20364
2012-07-15
00:54
Fix a memory leak. file: [d6164e1afa] check-in: [f772f8c188] user: js branch: trunk, size: 20037
2012-07-14
20:00
New autorelease pools. This uses the runtime's autorelease pools and implements autorelease pools in the ObjFW runtime. It therefore uses ObjFW's autorelease pools when using the ObjFW runtime and Apple's autorelease pools when using the Apple runtime. These new pools should be ARC-compatible now and finally, it should be possible to mix OFAutoreleasePools and NSAutoreleasePools again, even @autoreleasepool is allowed in the mix now. This also means the old bridge to NSAutoreleasePool should not be required anymore, as both use the runtime's autorelease pools now. As a bonus, it's significantly faster to use the ObjFW runtime with ObjFW's autorelease pools than to use Apple's runtime with Apple's autorelease pools, as a quick benchmark using OFXMLParser on large files showed. (Note: This is not only due to the different autorelease pools, but also due to the fact that even with the same autorelease pools it is faster using the ObjFW runtime, as can be seen in versions prior to this commit.) file: [d5e3e3b36f] check-in: [f5927f8a84] user: js branch: trunk, size: 19973
2012-07-12
01:28
Don't access isa directly. file: [470fa11181] check-in: [8892ae9fcc] user: js branch: trunk, size: 19981
2012-07-11
13:56
Get the number of CPUs on QNX. file: [64a1864a0a] check-in: [3d1d05df3c] user: js branch: trunk, size: 19696
08:38
Only use _SC_* if defined. file: [fd16b773e1] check-in: [a3dcdac0b8] user: js branch: trunk, size: 19516
2012-07-03
15:50
Merge branch 'runtime' * runtime: (76 commits) runtime: Add exception handling. ... file: [a5886ec856] check-in: [4c4fdb3429] user: js branch: trunk, size: 19509
2012-06-10
13:28
More API improvements. file: [7124c4f433] check-in: [11d3d69a22] user: js branch: trunk, size: 24924
2012-06-06
13:47
Slightly change the memory management API. Also fix a bug where OFBigDataArray would waste memory. file: [51c24d6468] check-in: [f7576a66ce] user: js branch: trunk, size: 25006
2012-03-21
14:47
OFObject: Use owner as a sentinel for pre_mem. file: [708e72ca3d] check-in: [ce1c7fe940] user: js branch: trunk, size: 24982
2012-03-17
15:12
Add of_alloc_object(). file: [0df01667b3] check-in: [e7d16fea58] user: js branch: trunk, size: 24819
14:26
Move definition of __BIGGEST_ALIGNMENT__ to macros.h. file: [ffa19d5312] check-in: [2d4a63cfcb] user: js branch: trunk, size: 24165
2012-03-15
11:29
Greatly improve OFObject's memory handling and performance. A linked-list is put before each memory chunk allocated instead of having an array of all memory chunks. This means only one malloc now instead of one malloc and one realloc. This also means that when checking reallocs and frees, it's no longer necessary to iterate through all memory chunks, as the linked list also contains the owner, meaning realloc and free are no longer O(n), but O(1) now. As allocating bigger chunks seems to be a little bit slower than smaller chunks, it seems that this is slightly slower in benchmarks if only very small chunks are allocated. However, measuring real world usage, it's a lot faster. file: [329e3b32bd] check-in: [28170f5f65] user: js branch: trunk, size: 24294
2012-03-13
20:19
Add of_num_cpus. file: [eb1f0d3652] check-in: [5a7c58ec98] user: js branch: trunk, size: 25566
2012-03-06
16:17
Clean up the method replacement mess. file: [836c79ac97] check-in: [2d08ba105c] user: js branch: trunk, size: 25413
00:13
Init C++ ctors in -[init] instead of +[alloc]. file: [fc6752589f] check-in: [9767602af7] user: js branch: trunk, size: 29411
2012-02-27
22:11
Add -[OFObject isMemberOfClass:] and -[OFObject isProxy]. file: [76ac8473f2] check-in: [8830166fe8] user: js branch: trunk, size: 29448
2012-01-05
00:56
Update copyright. file: [0093660075] check-in: [ce70e17b38] user: js branch: trunk, size: 29348
2012-01-03
20:44
Don't use objc_setUncaughtExceptionHandler with the old Apple runtime. file: [e021a66494] check-in: [138d928621] user: js branch: trunk, size: 29342
2012-01-01
19:41
Some MinGW versions are missing alloca() in <stdlib.h>. file: [066d7adb4c] check-in: [d871468a3a] user: js branch: trunk, size: 29295
2011-12-23
03:07
Add an uncaught exception handler for the Apple & new GNU runtime. file: [f8865835bf] check-in: [40c0aba35e] user: js branch: trunk, size: 29295
2011-12-13
13:43
Work around a bug affecting only Clang 2.9 + libobjc from GCC 4.6. file: [f6fefc29fd] check-in: [0c427ebb0a] user: js branch: trunk, size: 28862
2011-10-24
15:00
Don't use a spinlock for reference counting if we have no threads. file: [34b558d1e8] check-in: [9454c38313] user: js branch: trunk, size: 28012
2011-09-22
23:25
Exceptions are now autoreleased. This is safe as an "exception loop" can't happen, since if allocating an exception fails, it throws an OFAllocFailedException which is preallocated and can always be thrown. So, the worst case would be that an autorelease of an exception fails, triggering an OFOutOfMemoryException for which there is no memory, resulting in an OFAllocFailedException to be thrown. file: [6a6eeb3258] check-in: [e1e7ffa903] user: js branch: trunk, size: 27831
2011-09-19
16:34
Rename -[allocMemoryForNItems:withSize:] and friends. It is now -[allocMemoryForNItems:ofSize:]. file: [e5c0e6c88e] check-in: [f173477bef] user: js branch: trunk, size: 27612
2011-09-12
19:57
Rename -[cString] to -[UTF8String]. file: [6cafb355bb] check-in: [e6fd39d11e] user: js branch: trunk, size: 27613
2011-09-10
18:36
Remove -[finalize] as ARC will be implemented instead of a GC. file: [02fc494c69] check-in: [972a3ee40d] user: js branch: trunk, size: 27487
2011-08-03
04:14
Use the well hidden __objc_update_dispatch_table_for_class() function. The old GNU API actually does export a function to update the dtable, however, it is not defined in the headers anymore starting with gcc 4.6. file: [b3a44692ae] check-in: [3f0940e36d] user: js branch: trunk, size: 28095
03:53
Always use the old GNU API, even with the new GNU runtime. The new API of the new GNU runtime is currently too broken to be of any use, thus we even use the old API when the new one is detected until the new one has been fixed and offers a way to detect if it is the fixed one. file: [4d946cf26f] check-in: [546332b4d7] user: js branch: trunk, size: 28868
03:38
Fix updating the dtable for the old GNU runtime. Again, why does the old GNU runtime force us to fiddle with its internal data structures instead of exporting functions? file: [ec4f3dc978] check-in: [0322aa3168] user: js branch: trunk, size: 28738
01:55
D'oh... file: [1dc5e5a7d1] check-in: [e8dccdf9a9] user: js branch: trunk, size: 28551
2011-08-01
19:01
Don't use any other classes for +[inheritMethodsFromClass:]. Using other classes there would make it impossible to use +[inheritMethodsFromClass:] in the classes being used, which would be unfortunate as the classes that were used are potential candidates for collection classes. file: [b74fa282bf] check-in: [7b5b0c8174] user: js branch: trunk, size: 28590
2011-07-31
20:03
Correctly update the dtable for the old GNU runtime. file: [7f71e00414] check-in: [df914ca51d] user: js branch: trunk, size: 26946
19:45
Cleaner -[setImplementation:...] for old GNU runtime. Still work needed to correctly update the dtable. file: [c563fc5512] check-in: [fbee44d38e] user: js branch: trunk, size: 26486
02:07
Implement adding methods for the GNU runtime. file: [e350530160] check-in: [db5f8c2c1b] user: js branch: trunk, size: 26202
2011-07-30
23:31
More enhancements in +[OFObject inheritMethodsFromClass:]. Inherits class and instance methods now, handles superclasses, etc. file: [3cd936beff] check-in: [2828853e17] user: js branch: trunk, size: 24354
23:14
+[addClassMethod:withTypeEncoding:implementation:] to OFObject. file: [6537d810e0] check-in: [6083048589] user: js branch: trunk, size: 23379
17:43
Fix a typo. file: [103c38cd6a] check-in: [5613f7fc46] user: js branch: trunk, size: 23031
02:14
Improve +[inheritInstanceMethodsFromClass:]. file: [e21e0eaee6] check-in: [cace873874] user: js branch: trunk, size: 23030
2011-07-29
21:54
Add +[inheritInstanceMethodsFromClass:] to OFObject. This allows something similar to multiple inheritance. file: [c64aa46779] check-in: [bf0f10966f] user: js branch: trunk, size: 22541
2011-07-24
20:05
Add a few defines for runtime methods so they always have the same name. file: [51e0fb0c89] check-in: [c7bc7b93d9] user: js branch: trunk, size: 21434
2011-07-23
13:33
Add -[self] to OFObject. file: [28150d2fd9] check-in: [f1d6ecb1b8] user: js branch: trunk, size: 21752
2011-07-17
01:55
Define __NO_EXT_QNX in files using unistd.h or fcntl.h. Without this, the headers try to declare functions that use __block as an argument name and thus fail to compile when using -fblocks. file: [d3a58745ba] check-in: [da2701ad14] user: js branch: trunk, size: 21726
2011-07-08
15:29
Make it possible to add more ivars to OFConstantString. file: [1a556c5a33] check-in: [0b846bcc4a] user: js branch: trunk, size: 21702
2011-07-06
17:44
Add +[new] to OFObject for compatibility and convenience. file: [de19156e6d] check-in: [0319e89d4b] user: js branch: trunk, size: 21716
2011-06-13
14:08
Reduce ObjC method calls in OFFloatVector and OFFloatMatrix. file: [1d0de2f3be] check-in: [f4313d070a] user: js branch: trunk, size: 21676
03:47
Fix -[conformsToProtocol:] for the old GNU runtime. file: [251a843844] check-in: [a1769f0105] user: js branch: trunk, size: 21676
00:06
Replace a forgotten SIZE_MAX with UINT_MAX in OFObject.m. file: [c23b582461] check-in: [287d598b5a] user: js branch: trunk, size: 21657
2011-06-10
18:19
Save 16 bytes per object on 64 bit systems with a 16 byte alignment. file: [ace848aef2] check-in: [def4850926] user: js branch: trunk, size: 21657
2011-06-06
16:18
Remove semicolons that should not have been there. file: [05402e39fd] check-in: [65ec63f7c1] user: js branch: trunk, size: 21638
2011-06-05
22:26
Nicer API for serialization. file: [4dfae6fcca] check-in: [29988c434b] user: js branch: trunk, size: 21641
2011-05-04
22:22
Documentation improvements. file: [78d403774f] check-in: [851e47d743] user: js branch: trunk, size: 21511
2011-04-24
21:50
Add -[finalize] to all classes which would require it once we have GC. file: [e69c1ca6c9] check-in: [07b3d0e8de] user: js branch: trunk, size: 21384
18:30
Add _NSPrintForDebugger. file: [e4b8e27eb3] check-in: [ff381fe8ba] user: js branch: trunk, size: 20776
2011-04-22
20:19
More style improvements. file: [f33de6810c] check-in: [e76a7f52c1] user: js branch: trunk, size: 20688
16:23
Various style improvements. file: [b8a2ef4dd8] check-in: [c7e66feb30] user: js branch: trunk, size: 20462
2011-04-11
00:37
A few readability improvements. file: [59829ea342] check-in: [e52ccc8d45] user: js branch: trunk, size: 20432
2011-04-03
18:49
Use __BIGGEST_ALIGNMENT__ if available. file: [66f93123ef] check-in: [03f5fe299c] user: js branch: trunk, size: 20443
17:02
Fix -[performSelector:] and friends. file: [5b4c20a0f2] check-in: [3398436156] user: js branch: trunk, size: 20318
2011-03-27
17:51
Pass the causing object for OFEnumerationMutationExceptions. file: [8f8e235cfd] check-in: [f072e1a338] user: js branch: trunk, size: 20212
2011-03-25
12:30
Add -[performSelector:] and friends to OFObject. file: [fc3fc31d4e] check-in: [c3f3576af4] user: js branch: trunk, size: 20189
2011-03-24
19:42
Get rid of OFExceptions.h. file: [fde9d39d7a] check-in: [cda44767f4] user: js branch: trunk, size: 19732
2011-03-23
12:58
Make the return type of retainCount unsigned int. This way, the OFObject protocol is compatible to NSObject. file: [e58d7ba883] check-in: [8de8df50e9] user: js branch: trunk, size: 19442
2011-03-22
00:55
Add -Wshorten-64-to-32. file: [73e373ae9d] check-in: [6d4dfb5bc7] user: js branch: trunk, size: 19427
2011-03-11
16:47
Get rid of warnings when using latest clang. file: [83c3cca2e3] check-in: [36c4b260aa] user: js branch: trunk, size: 19447
2011-03-10
19:54
Call C++ constructors and destructors. However, this only works with Apple GCC and Clang, but does not hurt if unsupported. Therefore, no check for compiler support is needed. file: [a76c510128] check-in: [894658f979] user: js branch: trunk, size: 19440
2011-02-10
20:41
More work on the PSP port. Outputting text now works - with colours! file: [ffdb3bc597] check-in: [3273f141b3] user: js branch: trunk, size: 18264
2011-02-09
19:34
More changes to port ObjFW to PSP. file: [0e939837b3] check-in: [33f646ce2d] user: js branch: trunk, size: 18263
2011-01-29
19:16
Use %@ where it is useful. file: [a091595654] check-in: [d0eace5cd1] user: js branch: trunk, size: 18218
2011-01-14
11:01
It can never happen that we don't have threads and atomic ops. If we don't have threads, everything is atomic. file: [a02b47cd7d] check-in: [c50d483262] user: js branch: trunk, size: 18236
2011-01-01
20:19
Change license. file: [07b4e58e79] check-in: [da6b3d26cb] user: js branch: trunk, size: 18415
2010-12-28
22:18
Make ObjFW work again without threads and without atomic ops. file: [b33c6cd1e8] check-in: [88c920bd62] user: js branch: trunk, size: 18159
2010-12-18
23:39
Add support for the new GNU runtime. Currently, the properties test for nonatomic fails. This is a bug in the new GNU runtime. file: [72f139fc0b] check-in: [6f4eb004a3] user: js branch: trunk, size: 17930
2010-12-11
20:27
Rename a few exception-related methods. file: [5f364917f3] check-in: [5e44debc07] user: js branch: trunk, size: 17812
2010-12-10
11:21
Documentation fixes. file: [72238fc133] check-in: [fada60d54c] user: js branch: trunk, size: 17782
2010-11-16
00:50
Remove a useless #ifdef in OFObject.m. file: [4cf881420b] check-in: [57dd60897f] user: js branch: trunk, size: 17814
00:40
-[className] and +[className] now return an OFString. file: [5ec7131f1a] check-in: [2011b7b91c] user: js branch: trunk, size: 17916
2010-11-13
21:57
Add -[description] for OFObject, OFString, OFArray and OFDictionary. file: [115db6d7a7] check-in: [9b50b86632] user: js branch: trunk, size: 17842
2010-10-31
21:59
More atomic operations. file: [0624e5a61b] check-in: [dd061ee65e] user: js branch: trunk, size: 17574
2010-09-19
22:39
Add -[typeEncodingForSelector] and +[typeEncodingForInstanceSelector:]. file: [25a48a48d7] check-in: [477d06da14] user: js branch: trunk, size: 17619
2010-09-07
09:10
Rename +[addObjectToTopmostPool:] to +[addObject:]. file: [4840601dc7] check-in: [eafb8d18ed] user: js branch: trunk, size: 16009
2010-09-05
23:19
Replace OFObject* with id in many places. We assume now that every object understands retain, release, etc. so that we can weaken the type from OFObject* to id. This makes it possible to use different root object classes. file: [45b7441d77] check-in: [e2b06423e0] user: js branch: trunk, size: 16022
2010-08-25
22:05
Better way to cache OFAutoreleasePool. This way, the tests work again with static linking. file: [f4894aef60] check-in: [f2f4062b53] user: js branch: trunk, size: 16029
2010-07-08
10:04
Clean up method replacing. file: [b60749cd23] check-in: [fdcb2a71e4] user: js branch: trunk, size: 15901
09:44
Cache OFAutoreleasePool class. This improves performance with the GNU runtime, where looking up a class is quite expensive. file: [85afaae721] check-in: [3c5eb0ddb6] user: js branch: trunk, size: 15778
2010-05-05
17:21
Rename method replacement methods - the old names were too long. file: [1881ae5509] check-in: [bce7bbddf4] user: js branch: trunk, size: 15698
2010-05-04
12:25
Only allow subclasses for +[replace*Method:with*MethodFromClass:]. file: [721d4fa462] check-in: [252833ad30] user: js branch: trunk, size: 15709
2010-04-17
16:09
Give the methods in OFNumber better names. file: [7e95f15bf5] check-in: [2517f18272] user: js branch: trunk, size: 15457
15:46
Don't return self where not necessary, return void or something useful. file: [224d3accf3] check-in: [062a052b50] user: js branch: trunk, size: 15473
2010-04-01
23:51
Add support for ObjFW-RT, the ObjFW Objective C runtime. file: [6d2f924ac1] check-in: [8c2755723a] user: js branch: trunk, size: 15484
20:57
Improve method replacing when using the Apple runtime. This prevents replacing the method of a superclass when the method is not implemented in the class and creates a new method instead. file: [95a9dc34dd] check-in: [54e971a3a6] user: js branch: trunk, size: 15069
2010-03-13
21:24
Add global variable of_pagesize and use it to reduce code duplication. file: [4bc8df336e] check-in: [382ed34d40] user: js branch: trunk, size: 15256
2010-03-04
21:37
GCC always defines self as struct objc_class, even for class methods. file: [864eafb36e] check-in: [19890b42b2] user: js branch: trunk, size: 15004
12:28
Add +[setImplemenation:forClassMethod:] and friends. file: [69ac875773] check-in: [a4b1a005b6] user: js branch: trunk, size: 14963
2010-02-24
23:00
Rename -[replaceMethod:withMethodFromClass:] and friends. The rename was needed as these replace instance methods. file: [3fb2c436d1] check-in: [b156ec8284] user: js branch: trunk, size: 13494
22:56
Merge to fix wrong parent of last commit. file: [591acb6dd3] check-in: [b190519866] user: js branch: trunk, size: 13464
2010-02-16
12:11
Fix a typo. file: [4fdd97e3c7] check-in: [cdea8f326d] user: js branch: trunk, size: 13464
2010-02-10
20:30
Documentation improvements. file: [66bcfdea6b] check-in: [6a65366467] user: js branch: trunk, size: 13458
2010-02-07
14:15
Reduce #ifdefs in OFObject.m. file: [4674410a8d] check-in: [623c89300a] user: js branch: trunk, size: 13426
14:09
Add +[superclass] to OFObject. file: [eeb1a8282b] check-in: [047af7a8ad] user: js branch: trunk, size: 13652
2010-02-05
14:03
Rename of_atomic_*32 to of_atomic_*_32 and add of_atomic_cmpswap_ptr. file: [a529b1aaf1] check-in: [4e1ab53403] user: js branch: trunk, size: 13518
2010-02-02
18:58
Rename OFMacros.h to macros.h, as it's not a class. file: [747590c79e] check-in: [832188d759] user: js branch: trunk, size: 13516
2010-01-31
22:05
Small optimization. file: [357eadb4d2] check-in: [305317e5ea] user: js branch: trunk, size: 13518
2010-01-30
12:46
Change -[retainCount] back to size_t and cast, so we keep the old API. file: [695579ca2f] check-in: [2cb37ce407] user: js branch: trunk, size: 13516
10:47
Check return value of of_spinlock_*. file: [7ae92c5eec] check-in: [8a97fac06f] user: js branch: trunk, size: 13466
01:50
Fall back to spinlocks if atomic ops are unavailable. file: [415ea37dd0] check-in: [bd6a71aad3] user: js branch: trunk, size: 13343
01:17
Change spinlock implementation, add fallbacks and move to threading.h. file: [f35a66b387] check-in: [921b158d17] user: js branch: trunk, size: 12757
2010-01-29
15:21
Make retain count int32_t. file: [14884d461d] check-in: [b725e983ae] user: js branch: trunk, size: 12519
2010-01-25
15:22
Make retain counter 32 bit due to atomic ops being 32 bit. file: [490f2fcff3] check-in: [831ebcd4f5] user: js branch: trunk, size: 12528
2010-01-24
18:54
Make retain/release atomic. file: [1a2c0cda4c] check-in: [b4a9924066] user: js branch: trunk, size: 12472
2010-01-17
13:11
uintptr_t might be better here. file: [844da0afa5] check-in: [453532ccf3] user: js branch: trunk, size: 12420
2010-01-16
13:18
Make properties work with the Apple runtime. file: [e24c28f144] check-in: [4c069e571f] user: js branch: trunk, size: 12419
2010-01-04
00:18
Fix forgotten static for enumeration_mutation_handler. file: [42e8feff00] check-in: [c46f609578] user: js branch: trunk, size: 11774
2010-01-03
19:38
Throw an exception when trying to use +[dealloc]. file: [5be7057eec] check-in: [5e88aed650] user: js branch: trunk, size: 11757
18:48
Check for objc_enumerationMutation and provide it if it's missing. file: [c5b8c0b3b5] check-in: [2c40c95434] user: js branch: trunk, size: 11675
17:22
Add OFFastEnumeration protocol and OFEnumerationMutationException. file: [529e251348] check-in: [9a881883be] user: js branch: trunk, size: 11567
2009-12-09
18:43
Indent defines and imports where it is useful. file: [ff3d52f1b1] check-in: [66f6ca045c] user: js branch: trunk, size: 11347
2009-12-05
11:06
Add +[isSubclassOfClass:] to OFObject. file: [6eaebd22dd] check-in: [c7bfcc9e92] user: js branch: trunk, size: 11345
2009-12-02
20:02
Introduce some consistency when to use OFObject* and when to use id. file: [6b6a2eea9a] check-in: [c7ab3a46d1] user: js branch: trunk, size: 11066
2009-12-01
13:35
Better checking which runtime we use. file: [e42ffed2f9] check-in: [240b72cd71] user: js branch: trunk, size: 11059
2009-11-29
16:23
Allow NULL as parameter for -[freeMemory:]. file: [f65ab03140] check-in: [d57228d9d6] user: js branch: trunk, size: 11060
2009-11-15
01:17
Add +[load] to OFObject. file: [81f4a12608] check-in: [1bae432025] user: js branch: trunk, size: 11026
2009-11-09
22:45
Rename libobjfw to ObjFW. file: [4c1f43e6bd] check-in: [a3cc34b139] user: js branch: trunk, size: 11008
2009-10-19
08:29
Fix a bug in -[freeMemory:]. This could be an out of bounds write if the last element is free'd, as i is pointing to the last element then, which does not exist then anymore, as it was already resized. Now, it is set before resizing. Additionally, if the realloc to make it smaller fails, we just ignore that now - it will still work, as we set the correct size before resizing. file: [3718c4ff22] check-in: [6e357d636d] user: js branch: trunk, size: 11011
2009-08-26
19:40
Improve documentation. file: [02f24ce790] check-in: [146db53e4a] user: js branch: trunk, size: 11010
2009-08-12
15:37
Rename +[name] and -[name] to +[className] and -[className]. file: [344bd01fa3] check-in: [ce8d36d5c4] user: js branch: trunk, size: 11010
2009-07-19
14:05
Rename andFoo: to foo: in all methods. file: [bc5794b890] check-in: [4eae61a78f] user: js branch: trunk, size: 11000
2009-06-30
14:22
Add +[instanceMethodForSelector:] to OFObject. file: [cb5875a194] check-in: [0707c56762] user: js branch: trunk, size: 11000
14:15
Add +[instancesRespondToSelector:] to OFObject. file: [b8dec711ff] check-in: [5f47e81a9e] user: js branch: trunk, size: 10786
12:07
A few renames in OFObject, see details. * +[conformsTo:] to +[conformsToProtocol:]. * -[isKindOf:] to -[isKindOfClass:]. * -[respondsTo:] to -[respondsToSelector:]. * -[conformsTo:] to -[conformsToProtocol:]. * -[methodFor:] to -[methodForSelector:]. file: [434aadda8c] check-in: [67bb344ba6] user: js branch: trunk, size: 10576
2009-06-10
15:31
Add +[setImplementation:forMethod:]. file: [afcd5f1e07] check-in: [b10efe7b2b] user: js branch: trunk, size: 10523
2009-06-09
23:28
Update the dtable so we can replace methods at runtime. file: [da7bffba83] check-in: [c70922ee1c] user: js branch: trunk, size: 10350
13:01
Use #import "*.h" instead of #import <*.h> in objfw.h. We need this because we don't add the objfw include path to the CPPFLAGS anymore in objfw-config. file: [0fa5062289] check-in: [b7cd1e3dc6] user: js branch: trunk, size: 10090
2009-06-02
17:21
Take care of the root metaclass's super being the root class. file: [936af7ddb3] check-in: [4c343b7841] user: js branch: trunk, size: 10088
2009-06-01
12:20
Add +[conformsTo:] and -[conformsTo:]. file: [089ffd7efa] check-in: [5008910e85] user: js branch: trunk, size: 8913
2009-05-29
19:21
A few renames. OFExceptions: * OFNoMemException to OFOutOfMemoryException. * OFMemNotPartOfObjException to OFMemoryNotPartOfObjectException. OFObject: * -[addItemToMemoryPool:] to -[addMemoryToPool:]. * -[allocWithSize:] to -[allocMemoryWithSize:]. * -[allocNItems:withSize] to -[allocMemoryForNItems:withSize:]. * -[resizeMem:toSize] to -[resizeMemory:toSize:]. * -[resizeMem:toNItems:withSize:] to -[resizeMemoryToNItems:withSize:]. * -[freeMem] to -[freeMemory:]. OFString: * -[urlencode] to -[urlEncodedString]. * -[urldecode] to -[urlDecodedString]. file: [4147582b99] check-in: [033054ad75] user: js branch: trunk, size: 8338
2009-05-25
17:00
Improve objc_sync.m. * Use inline functions to improve code readability. * Fix a wrong lock. * Initialize it in +[initialize] of OFObject. file: [8515c66c59] check-in: [5337be0924] user: js branch: trunk, size: 8240
2009-05-24
21:51
Don't use @defs - it's not available in the ObjC2 ABI. file: [3d254d43a1] check-in: [4cd4d94ea8] user: js branch: trunk, size: 8020
18:04
Always use #include "config.h" instead of #import "config.h". file: [b3df5176b4] check-in: [94ea6848a8] user: js branch: trunk, size: 8039
2009-05-23
21:53
A few renames. OFArray: * -[add:] to -[addObject:]. * -[last] to -[lastObject]. OFAutoreleasePool: * +[addToPool:] to +[addObjectToTopmostPool:]. * -[addToPool:] to -[addObject:]. OFDataArray: * -[add:] to -[addItem:]. * -[last] to -[lastItem]. OFObject: * -[addToMemoryPool:] to -[addItemToMemoryPool:]. file: [8454e38c50] check-in: [526d04018d] user: js branch: trunk, size: 8038
2009-05-16
11:47
Use @defs in preallocated OFAllocFailedException struct. file: [74f9d21734] check-in: [fa64faf81e] user: js branch: trunk, size: 8021
2009-05-13
20:39
Let - release return void again. If you want to know if it will be released, you can just get the retain count and check it this way. file: [6b8000ea51] check-in: [6d589825cd] user: js branch: trunk, size: 8002
20:31
Rename - free to - (void)dealloc. file: [e6b5b1a83b] check-in: [9e6dd00ef5] user: js branch: trunk, size: 8030
19:49
There's no need for + initialize to return anything. file: [168ac17ab0] check-in: [917188fdcc] user: js branch: trunk, size: 8019
2009-05-03
21:33
Get rid of + new. Additionally, make - accept return an autoreleased OFTCPSocket. file: [0826af6e82] check-in: [5ca127891c] user: js branch: trunk, size: 8027
15:10
Get rid of another useless variable. file: [ed4919e346] check-in: [2cec8a76d7] user: js branch: trunk, size: 8067
14:48
Don't throw an OFNoMemException in - freeMem:. It won't help anyway. If there's not even enough memory to make the list of memchunks smaller, there can't be much done anyway. The only way is to ignore it and hope the whole object gets free'd soon, as the memchunk will be free'd then as well. Additionally, the OFOutOfRangeException was replaced by an assert. It should never overflow here as we're making it smaller. And a size of 0 can't happen as we already found the memchunk before. file: [a14dce520b] check-in: [042a74a6e6] user: js branch: trunk, size: 8105
2009-04-26
12:44
A few renames in OFObject. getMemWithSize: -> allocWithSize: getMemForNItems:ofSize: -> allocNItems:withSize: resizeMem:toNItems:ofSize: -> resizeMem:toNItems:withSize: file: [a774c5de86] check-in: [e959fed010] user: js branch: trunk, size: 8225
2009-04-22
22:43
gcc seems to accept a @throw instead of a return as well. file: [352bb910bc] check-in: [8dbc052d49] user: js branch: trunk, size: 8237
2009-04-21
18:07
Remove useless + load from OFObject. file: [290156f650] check-in: [ba65a43f3f] user: js branch: trunk, size: 8347
16:47
Throw OFAllocFailedException instead of returning nil. This exception is quite special, look at the documentation for details. file: [1a0aed77e1] check-in: [a1a5bfb3cd] user: js branch: trunk, size: 8407
2009-04-20
01:42
Partly revert 13945ed73147 and add testcase. file: [18bfba4e77] check-in: [6e4eb3c2ec] user: js branch: trunk, size: 8239
2009-04-19
20:34
Use isa instead of [self class]. Since we don't use Object anymore and define isa in OFObject, we can rely on it. file: [850b7969ab] check-in: [139591afe1] user: js branch: trunk, size: 8214
20:19
Actually, it makes sense that - release returns self. This way, you can check if the object has been free'd, for example using if ((obj = [obj release]) == nil). file: [deb9ba26f1] check-in: [348b389736] user: js branch: trunk, size: 8323
17:37
Remove forwarding methods. See long commit message for details. There are two resons for removing it: First, OFPlugin does not need forwarding anymore. Second is that forwarding is broken in both, the GNU and the Apple runtime. In GNU libobjc, objc_msg_sendv is implemented using __builtin_apply, which is broken on many platforms, including x86_64. If forwarding is used, the application will just crash. To work around that, I'd need to parse the type encoding and use libffi to call the method instead of using objc_msg_sendv. Now the Apple runtime has a similar problem: There is no objc_msgSendv for PPC64 and x86_64 as it's only in ObjC1 and on ARM (iPhone), it's broken (most likely because the iPhone uses only ObjC2 - I was confused that objc_msgSendv was even in the libobjc there). So I'd need to write an ASM implementation for these 3. Writing those 3 ASM implementations (or 5, so we don't depend on ObjC1 stuff on PPC32 and x86 as well) wouldn't be a problem, but there is a problem the GNU libobjc and the Apple runtime got in common, which originates from the early ObjC implementations: forward:: and performv:: were only designed to return scalar types. But today, it's possible to return floats, structs and unions as well. What Apple and GNU use here is a very hacky workaround and it's just luck that it works. forward:: and performv:: both return an id (Apple) or void* (GNU). forward:: is called by the runtime if you called a method that is not implemented. The compiler does not know at compile time that it is not implemented, therefore expects a float as a return. On x86, floats are returned in sp0. The runtime now notices that the called method is not implemented and calls forward::. Forward then calls performv:: to call the right method. The method returns a float and stores it in sp0. Remember that both, forward:: and performv:: return an id / void*. performv:: returns now and after that, forward:: returns. The return of those was always put into eax, as that's how scalar values are returned on x86. The original caller of the method does not expect any return value in eax, but in sp0. This works, as no code touched sp0. However, you can not rely on sp0 not being touched. It's just luck that the compiler generates code that does not touch sp0. While this works for forwarding due to the ABI on x86 (and the ABIs on many other platforms allow this hack as well), this fails if you call performv:: directly on a method returning a float. In this case, the compiler does not expect a return value in sp0, but in eax, as performv:: is expected to return id / void*. Therefore the bogus value in eax will be casted to float and the result will be useless. This is why I decided to remove forwarding and performv:: from libobjfw for now. If I encounter a situation where I need forwarding, I'm going to implement it in a sane way and NOT the objc way. The forwarding methods this commit removes did it the objc way, which is IMO just wrong. (That way was ok back then when you only had scalar return types, but today you're not limited to scalar return types anymore.) file: [a0cbb15bb4] check-in: [57fb5578cc] user: js branch: trunk, size: 8307
2009-04-16
17:18
Get rid of dependency on method_getSizeOfArguments. file: [7381da9158] check-in: [345716d824] user: js branch: trunk, size: 10155
2009-04-15
20:31
Workaround for wrong length of OFConstStrings on PPC64 OS X. Apple does a strange thing there: The length is only 32 bit, followed by another 32 bit which seem to be garbage. file: [4cc42158d1] check-in: [9b3e9e6895] user: js branch: trunk, size: 9302
2009-04-12
14:51
Get rid of the dependency on Object. This allows libobjfw to run on ObjC2-only runtimes like the one on the iPhone. However, it's still relying on objc_msgSendv for plugins, which is unavailable in ObjC2-only runtimes, thus OFPlugins are unavailable on the iPhone until I write a replacement for objc_msgSendv. file: [fd94d50205] check-in: [cbdd534337] user: js branch: trunk, size: 9317
2009-03-04
20:49
- release should not be chained, might be free'd. Therefore return void. file: [1ab2516eb4] check-in: [e73e76e40f] user: js branch: trunk, size: 5006
2009-02-27
11:17
Add - hash for OFArray and OFString, main implementation in OFMacros. file: [b132f8aa53] check-in: [ffd26c8238] user: js branch: trunk, size: 5022
2009-02-15
16:40
Get rid of OFComparable and make it part of OFObject. file: [091b00dab8] check-in: [d9308adc2b] user: js branch: trunk, size: 5033
2009-02-14
17:26
Always use #include for libc headers due to glibc being broken. Do the same for win32 headers, just in case. They should work with #import, but you never know ;). file: [9d1bddfff6] check-in: [029511474c] user: js branch: trunk, size: 4800
2009-01-06
22:38
Use OFList and OFArray in OFAutoreleasePool. This reduces code duplication and looks far better. file: [f1ae449a76] check-in: [dfc10dbeb8] user: js branch: trunk, size: 4797
2009-01-05
00:59
Update copyright. file: [c1018bac67] check-in: [f1b749d113] user: js branch: trunk, size: 4746
00:56
Initial OFAutoreleasePool - still needs a *lot* of testing. file: [7210a76063] check-in: [b412845664] user: js branch: trunk, size: 4739
2009-01-04
01:40
Clean up exceptions. file: [027dbab7f0] check-in: [bb1fe89478] user: js branch: trunk, size: 4490
2008-12-24
16:11
Let libobjc free our objects. file: [e51bd21762] check-in: [e9aa88be06] user: js branch: trunk, size: 4418
11:55
Add methods to initalize from and append from formatted C strings. file: [239d0ace71] check-in: [486760ed2b] user: js branch: trunk, size: 4423
2008-12-23
03:59
Remove spaces and tabs at end of line. file: [59a115d6f5] check-in: [7d7b89d775] user: js branch: trunk, size: 3873
01:57
Check for SIZE_T, fallback to SIZE_T_MAX or define as (size_t)-1. file: [6f88f8ea70] check-in: [c180b76560] user: js branch: trunk, size: 3878
2008-12-22
22:00
This isn't needed anymore. file: [a8fcc0b239] check-in: [1d99bea306] user: js branch: trunk, size: 3859
2008-12-09
17:36
Don't use - raise anymore, but @throw. - raise was only because at first, exceptions were self-raising, but this was later changed so they had to be risen manually. - rise was introduced for that, but it would've been better to use @throw directly. Thus, this change now. file: [19577f9cbf] check-in: [d88aec8e95] user: js branch: trunk, size: 3945
2008-12-07
02:53
Add writeCString and writeWideCString to OFStream. file: [16b59ee246] check-in: [6ed7c33611] user: js branch: trunk, size: 3938
2008-11-29
11:59
Optimize branch prediction for ifs inside loops. file: [c722de15cb] check-in: [92c12b1d4f] user: js branch: trunk, size: 3977
2008-11-08
21:52
Further optimize OFObject. file: [c0fb34ec43] check-in: [c6ee6a2870] user: js branch: trunk, size: 3878
20:28
Optimize OFObject. file: [9ea6f8965e] check-in: [14ba9e517b] user: js branch: trunk, size: 3784
2008-11-07
17:25
Implementation for OFBigArray. file: [f326f71c26] check-in: [59f16e8a3d] user: js branch: trunk, size: 3234
2008-11-05
16:11
OFOverflowException -> OFOutOfRangeException. file: [014c4c85fd] check-in: [3577c0d81c] user: js branch: trunk, size: 3234
2008-11-02
00:27
Some fixes for OFObject. file: [6aad9c4888] check-in: [9ff3dbe9f9] user: js branch: trunk, size: 3230
2008-11-01
22:20
Some exception stuff & withSize -> ofSize for OFObject. file: [99a5765c29] check-in: [9944a6f8a4] user: js branch: trunk, size: 2955
21:47
Allow using [ofobject resizeMem: NULL toSize: size]. file: [dfdab0e3f3] check-in: [a6b45eec2f] user: js branch: trunk, size: 2942
2008-10-29
17:29
Add getMemForNItems:withSize: & resizeMem:toNItems:withSize: in OFObject Additionally, interface for OFArray. file: [504a3629c1] check-in: [49859c2bcc] user: js branch: trunk, size: 2885
2008-10-26
20:54
Return self when we have no return value. This allows nesting. file: [fdc15c6565] check-in: [8ae4c59cd6] user: js branch: trunk, size: 2332
2008-10-25
22:28
Decided we don't want @"" anyway. Thus remove our own alloc. We don't need it anymore as there is no reason left to have our memory pool before the instance variables left. file: [88dde3fe42] check-in: [061e654036] user: js branch: trunk, size: 2318
2008-10-22
13:32
Reworked OFObject and added append(Wide)CString to OFString. The reworked OFObject lets one test fail on the GNU runtime. Unfortunately, I have no idea why... file: [5509180fd4] check-in: [e47ad44290] user: js branch: trunk, size: 3131
2008-10-09
00:25
Multiple changes, see details. * Use config.h. * Check whether to use sel_get_name or sel_getName. * Rename freeWithData to freeIncludingData. file: [85971766c6] check-in: [7a49441656] user: js branch: trunk, size: 2209
2008-10-08
23:15
Multiple changes, see details. * OFObject getMem: renamd to getMemWithSize:. * OFString compare: renamed to compareTo:. * Exceptions don't throw itself anymore. * Exceptions include an error string now. * Exceptions now got raise and string. * New methods for OFFile: * changeModeOfFile:toMode: * changeOwnerOfFile:toOwner:andGroup: * delete: * link:to: * symlink:to: * OFFile isEndOfFile renamd to atEndOfFile * OFNotImplementedExeception newWithObject:andMethod renamed to newWithObject:andSelector:. * Tests updated accordingly. * TODO list added. file: [c1de4ea884] check-in: [b597d49f43] user: js branch: trunk, size: 2189
2008-10-07
17:18
Added OFFile. file: [deca1fe096] check-in: [71119a787b] user: js branch: trunk, size: 2145
2008-09-14
19:03
More exceptions stuff. file: [0937ee4297] check-in: [98fe076bd8] user: js branch: trunk, size: 2137
16:43
Lots of changes. See full commit message. * Updated buildsys to fixed version. * Implement exceptions. * Let OFObject use exceptions. * Write tests for OFObject. * Fix a bug in OFObject's freeMem:. file: [9572084d4f] check-in: [7b8b7cd06c] user: js branch: trunk, size: 2357
15:29
Coding style. file: [b460fe3dcf] check-in: [778be56179] user: js branch: trunk, size: 1964
2008-09-12
13:25
Added: Initial import. file: [3a6fe1669c] check-in: [a580136c80] user: js branch: trunk, size: 1900