Commit graph

220 commits

Author SHA1 Message Date
Richard Frith-MacDonald
97cecc058e tweaks to keep static analyzer happy
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36527 72102866-910b-0410-8b05-ffd578937521
2013-04-14 16:25:27 +00:00
Richard Frith-MacDonald
d314f0f843 experiment with slower but better hashes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36344 72102866-910b-0410-8b05-ffd578937521
2013-03-12 16:11:10 +00:00
Richard Frith-MacDonald
a8559c5c18 avoid a couple of warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36280 72102866-910b-0410-8b05-ffd578937521
2013-03-05 16:20:10 +00:00
Richard Frith-MacDonald
75661de25e fix for overrun when searching backwards (spotted by Fred using valgrind)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36204 72102866-910b-0410-8b05-ffd578937521
2013-02-28 12:51:27 +00:00
David Chisnall
6f84df52c2 Add missing retainCount methods for small objects.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36034 72102866-910b-0410-8b05-ffd578937521
2013-01-29 18:42:23 +00:00
Richard Frith-MacDonald
7dc7161748 fix range error in last substring creation change
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35940 72102866-910b-0410-8b05-ffd578937521
2013-01-08 21:59:38 +00:00
Richard Frith-MacDonald
9adb6e80dd tiny optimisation to allow intermeidate substrings to be released earlier
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35939 72102866-910b-0410-8b05-ffd578937521
2013-01-08 08:25:18 +00:00
Richard Frith-MacDonald
fb2b132662 tidy indentation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35938 72102866-910b-0410-8b05-ffd578937521
2013-01-07 21:39:35 +00:00
Richard Frith-MacDonald
c8d2192a54 poatches by Marcus and Stefan
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35906 72102866-910b-0410-8b05-ffd578937521
2012-12-18 09:00:40 +00:00
Richard Frith-MacDonald
0be505308d simplification, including use of strtoull() everywhere
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35503 72102866-910b-0410-8b05-ffd578937521
2012-09-03 13:36:45 +00:00
David Chisnall
6f2704bdb4 Conditionally compile profiling / debugging code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35448 72102866-910b-0410-8b05-ffd578937521
2012-08-25 14:01:56 +00:00
David Chisnall
e30ebe3149 Fix the build on platforms without tiny string support.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35447 72102866-910b-0410-8b05-ffd578937521
2012-08-25 12:31:41 +00:00
David Chisnall
bbc86d4f31 Use tiny strings in a few more places.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35446 72102866-910b-0410-8b05-ffd578937521
2012-08-25 12:15:11 +00:00
Richard Frith-MacDonald
6f9b24af1e simplify case conversion options
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35364 72102866-910b-0410-8b05-ffd578937521
2012-08-08 16:54:08 +00:00
Richard Frith-MacDonald
5b9f85a875 fix bad return inside exception block.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35363 72102866-910b-0410-8b05-ffd578937521
2012-08-08 15:10:13 +00:00
Richard Frith-MacDonald
9fcfba64a2 literal string handling improvments.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35359 72102866-910b-0410-8b05-ffd578937521
2012-08-08 09:46:08 +00:00
Riccardo Mottola
b02052b792 Do not include malloc on OpenBSD to avoid warning
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35104 72102866-910b-0410-8b05-ffd578937521
2012-04-22 19:00:27 +00:00
Richard Frith-MacDonald
592f8b39c8 compatibiulity fix for 35699
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34865 72102866-910b-0410-8b05-ffd578937521
2012-03-02 19:01:30 +00:00
Richard Frith-MacDonald
8e79a9764f avoid a few warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34665 72102866-910b-0410-8b05-ffd578937521
2012-01-30 11:31:40 +00:00
Riccardo Mottola
6e1bdad49f Fix blocking compiler warning (ggc 4.5.3)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34327 72102866-910b-0410-8b05-ffd578937521
2011-12-19 23:04:04 +00:00
Richard Frith-MacDonald
bc4151c775 get base to compile again, and improve readability/consistency
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34184 72102866-910b-0410-8b05-ffd578937521
2011-11-17 06:11:36 +00:00
David Chisnall
d728c938b2 Store tiny strings (up to 8 ASCII characters) inside the pointer. Strings of
this length are fairly common, and this makes them very cheap to store / copy /
compare (pointer comparisons test for equality).  8 characters seems to be
enough for quite a lot of common uses, such as path components and tokens.
There are possibly still some things constructing tiny strings and not using
these.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34181 72102866-910b-0410-8b05-ffd578937521
2011-11-16 20:48:50 +00:00
Richard Frith-MacDonald
de6e9cf7fc Literal string equality tests ... implement another optimisation, plus one
spotted by Fred, plus a fix for another bug spotted by Fred!


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34102 72102866-910b-0410-8b05-ffd578937521
2011-11-01 11:43:40 +00:00
Richard Frith-MacDonald
307b4c2acb improve literal string optimisation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34101 72102866-910b-0410-8b05-ffd578937521
2011-11-01 09:43:25 +00:00
Richard Frith-MacDonald
d8f925828c fix bug spotted by fred
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34094 72102866-910b-0410-8b05-ffd578937521
2011-10-31 10:00:29 +00:00
Richard Frith-MacDonald
a59695c097 Implement optimisations suggested by Fred's vcachegrind profiling.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34093 72102866-910b-0410-8b05-ffd578937521
2011-10-31 08:12:26 +00:00
Richard Frith-MacDonald
d3a44df7f7 tweak for more efficient string handling
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34084 72102866-910b-0410-8b05-ffd578937521
2011-10-28 15:02:46 +00:00
Richard Frith-MacDonald
f42303afe6 clean up comments a little
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34083 72102866-910b-0410-8b05-ffd578937521
2011-10-28 14:31:46 +00:00
Richard Frith-MacDonald
8d78f200a2 tweak last optimisation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34082 72102866-910b-0410-8b05-ffd578937521
2011-10-28 14:30:47 +00:00
Richard Frith-MacDonald
122d1d1b4e fix error replacing strings in a string, and optimise literal strings a bit
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34081 72102866-910b-0410-8b05-ffd578937521
2011-10-28 14:25:17 +00:00
Richard Frith-MacDonald
a879c34f2d tweak for fast conversion of literals to ascii or latin1
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33988 72102866-910b-0410-8b05-ffd578937521
2011-10-14 13:45:52 +00:00
Richard Frith-MacDonald
4dc9479f0f implement -hash for constant strings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33979 72102866-910b-0410-8b05-ffd578937521
2011-10-14 07:07:39 +00:00
Richard Frith-MacDonald
ee4d1aef0f Tweaks to support UTF-8 literal string encoding supported by more recent
compilers.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33972 72102866-910b-0410-8b05-ffd578937521
2011-10-12 14:28:44 +00:00
David Chisnall
b85364de7e Cleanup:
- (void)release;
to
- (oneway void)release;
so everything implementing -release actually implements the one declared in the NSObject protocol.

Start marking things that are unavailable in ARC mode as unavailable in ARC mode.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33660 72102866-910b-0410-8b05-ffd578937521
2011-07-31 15:31:39 +00:00
David Chisnall
d9fda65728 Added NSRegularExpressionSearch (10.7) support to NSString.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33600 72102866-910b-0410-8b05-ffd578937521
2011-07-21 13:17:27 +00:00
David Chisnall
de2fd8df6e More GC fixes. Most notably, mark the thread object as not collectable, since it's hidden away in TLS where the GC can't find it.
GC now works well enough for LanguageKit to run.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33123 72102866-910b-0410-8b05-ffd578937521
2011-05-26 13:24:13 +00:00
David Chisnall
b08b2d0f34 More tweaks for garbage collection mode, including making NSNotificationCenter use weak pointers (things are never removed if it uses strong pointers because they remove themselves in the -dealloc method, which is never called, and can't remove themselves in the -finalize method because the -finalize method would not be called until after they have been removed - this is consistent with Apple behaviour).
Gorm now works correctly when built with GC enabled.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33109 72102866-910b-0410-8b05-ffd578937521
2011-05-25 11:15:08 +00:00
Richard Frith-MacDonald
74eac99280 add last night's changes based on static analyser results.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32507 72102866-910b-0410-8b05-ffd578937521
2011-03-09 10:24:18 +00:00
Richard Frith-MacDonald
6f9ef887aa fix for constant string case changes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32309 72102866-910b-0410-8b05-ffd578937521
2011-02-23 07:25:12 +00:00
Richard Frith-MacDonald
61bc059d4a Cleanup ... avoid accessing the 'isa' variable directly.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32247 72102866-910b-0410-8b05-ffd578937521
2011-02-20 16:21:43 +00:00
David Chisnall
ddad542fb1 Add some explicit casts-through-void* to silence warnings about casts that increase the alignment requirements of the pointee (mostly caused by using char* for arithmetic).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32219 72102866-910b-0410-8b05-ffd578937521
2011-02-19 15:34:21 +00:00
Nicola Pero
171884ce1c Explicitly use 'int' to read/write NSStringEncoding so that
it works for all versions of GCC


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31784 72102866-910b-0410-8b05-ffd578937521
2010-12-27 11:28:01 +00:00
Richard Frith-MacDonald
be39561811 fix type cast
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31458 72102866-910b-0410-8b05-ffd578937521
2010-10-01 11:24:19 +00:00
Richard Frith-MacDonald
42828af0cc minor optimisations
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31433 72102866-910b-0410-8b05-ffd578937521
2010-09-28 13:23:53 +00:00
Richard Frith-MacDonald
a4f869f7e5 fix some return type errors
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31338 72102866-910b-0410-8b05-ffd578937521
2010-09-12 17:05:30 +00:00
David Chisnall
495aa33a99 Added a hack to allow the stuff GSString caches to be re-cached. Ideally we wouldn't be caching any of this stuff (or, with libobjc2, we'd be using the slot mechanism to invalidate the cache when required).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31005 72102866-910b-0410-8b05-ffd578937521
2010-07-19 17:10:46 +00:00
Richard Frith-MacDonald
ddffb6eec3 include malloc.h for alloc() on platforms where it isn't in alloca.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29971 72102866-910b-0410-8b05-ffd578937521
2010-03-16 06:11:00 +00:00
Richard Frith-MacDonald
f74a059bb4 fix position of assert
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29878 72102866-910b-0410-8b05-ffd578937521
2010-03-08 12:11:03 +00:00
Richard Frith-MacDonald
39fc4419b0 further cleanup ... always use -zone method to get an object's zone ...
so people can safely write subclasses using different allocation schemes.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29847 72102866-910b-0410-8b05-ffd578937521
2010-03-05 09:30:18 +00:00
Richard Frith-MacDonald
233f362171 include alloca.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29755 72102866-910b-0410-8b05-ffd578937521
2010-02-25 19:05:21 +00:00