Commit graph

242 commits

Author SHA1 Message Date
rfm
5b574299e7 Further correction to latin1 conversion
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39299 72102866-910b-0410-8b05-ffd578937521
2016-01-21 12:42:43 +00:00
rfm
887ec65251 Fix error copnverting utf8 constant string to latin1 data
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39298 72102866-910b-0410-8b05-ffd578937521
2016-01-21 12:27:25 +00:00
thebeing
6f548d1c8d Optimise appending UTF-16 strings for formatting
If the string being appended to already uses unichar as the underlying 
character type, append the new characters using memcpy() instead of
looping over them individually. Also includes test cases to verify that
nothing breaks.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38969 72102866-910b-0410-8b05-ffd578937521
2015-09-04 09:48:07 +00:00
rfm
c824950ec0 Avoid compiler warnrings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38888 72102866-910b-0410-8b05-ffd578937521
2015-08-16 10:42:48 +00:00
rfm
21636b06d9 more updates
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38803 72102866-910b-0410-8b05-ffd578937521
2015-07-16 08:44:15 +00:00
rfm
a8132a27d5 More experimental code changes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38801 72102866-910b-0410-8b05-ffd578937521
2015-07-15 15:26:29 +00:00
rfm
3efbfa42e2 memory usage interrogation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38799 72102866-910b-0410-8b05-ffd578937521
2015-07-15 14:14:21 +00:00
rfm
1f0193537c remove a little unused code
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38556 72102866-910b-0410-8b05-ffd578937521
2015-05-26 12:19:02 +00:00
rfm
f76bdd0f13 fix sign extension error
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38549 72102866-910b-0410-8b05-ffd578937521
2015-05-26 09:56:55 +00:00
rfm
3accb5c02c Implement -mutableCopyWithZone: for tiny strings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38543 72102866-910b-0410-8b05-ffd578937521
2015-05-25 18:13:10 +00:00
rfm
8d31d3a100 more utf8 optimisation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38542 72102866-910b-0410-8b05-ffd578937521
2015-05-25 17:55:51 +00:00
rfm
325689b04f some optionisation of string equality test ... don't compute hash of string
unless the string is large enough to make it worthwhile.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38541 72102866-910b-0410-8b05-ffd578937521
2015-05-25 14:51:02 +00:00
rfm
1a8e11c350 Another small optimisation for string creation ...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38540 72102866-910b-0410-8b05-ffd578937521
2015-05-25 11:47:13 +00:00
rfm
1c74bc231b Small optimisation for creating NSString from UTF8 C string
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38539 72102866-910b-0410-8b05-ffd578937521
2015-05-25 11:11:24 +00:00
rfm
d9ea43a7a1 minor performance tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38530 72102866-910b-0410-8b05-ffd578937521
2015-05-24 14:12:42 +00:00
rfm
76fd87b9a8 check to see if we should free memory
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38529 72102866-910b-0410-8b05-ffd578937521
2015-05-23 21:35:03 +00:00
rfm
6ecc3187b4 Another tiny string optimisation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38525 72102866-910b-0410-8b05-ffd578937521
2015-05-22 16:24:27 +00:00
rfm
971c0d4a12 Some string optimisation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38518 72102866-910b-0410-8b05-ffd578937521
2015-05-22 14:28:08 +00:00
rfm
f80a4b4b66 Fixups to get acceptable performance from TinyString objects.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38476 72102866-910b-0410-8b05-ffd578937521
2015-05-05 11:54:14 +00:00
rfm
9e17f30f8b fix for bug #42483
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37934 72102866-910b-0410-8b05-ffd578937521
2014-06-01 18:08:44 +00:00
rfm
1483924463 leak detection improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37003 72102866-910b-0410-8b05-ffd578937521
2013-08-22 15:44:54 +00:00
rfm
bddd1e734f printf style format tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36799 72102866-910b-0410-8b05-ffd578937521
2013-07-02 15:46:26 +00:00
rfm
d26640c7ab 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
rfm
cc87536fda 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
rfm
47ed749c4c 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
rfm
60c04b53e6 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
theraven
ea5a936ae1 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
rfm
fd9e1db26c 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
rfm
6d9d73c0b4 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
rfm
4f4ab32e92 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
rfm
cd97eb99b3 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
rfm
0623c0c0c2 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
theraven
785044ffb2 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
theraven
dceedfb915 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
theraven
ccaefa05e8 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
rfm
e0c4edf62b 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
rfm
cbc74f3800 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
rfm
c767e8a8d3 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
rmottola
f857c2928f 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
rfm
a1748ffc60 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
rfm
ad0ba98491 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
rmottola
dddfc5fa7b 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
rfm
fc8d1c8260 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
theraven
6a299cb671 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
rfm
0575536e78 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
rfm
27807e706c 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
rfm
84d3190d31 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
rfm
84a297282f 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
rfm
22289342b4 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
rfm
a220e9bdf0 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