pike.git/
src/
stralloc.c
Branch:
Tag:
Non-build tags
All tags
No tags
2001-07-04
2001-07-04 00:03:03 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
82bdfa84954d332befe1d362c9806cfa44f32a0e (
23
lines) (+
9
/-
14
)
[
Show
|
Annotate
]
Branch:
7.2
alignment fix
Rev: src/stralloc.c:1.118
Rev: src/stralloc.h:1.60
26:
#define HUGE HUGE_VAL #endif /*!HUGE*/
-
RCSID("$Id: stralloc.c,v 1.
117
2001/
06
/
29
16
:
59
:
09
grubba
Exp $");
+
RCSID("$Id: stralloc.c,v 1.
118
2001/
07
/
04
00
:
03
:
02
hubbe
Exp $");
#define BEGIN_HASH_SIZE 997 #define MAX_AVG_LINK_LENGTH 3
420:
/* Use the BLOCK_ALLOC() stuff for short strings */ #define SHORT_STRING_BLOCK 256
-
#define SHORT_STRING_THRESHOLD
16
+
#define SHORT_STRING_THRESHOLD
15 /* % 4 === 1 */
struct short_pike_string0 {
-
struct pike
_
string str
;
-
p_wchar0
data
[SHORT_STRING_THRESHOLD];
+
PIKE
_
STRING_CONTENTS
;
+
p_wchar0
str
[SHORT_STRING_THRESHOLD];
}; struct short_pike_string1 {
-
struct pike
_
string str
;
-
p_wchar1
data
[SHORT_STRING_THRESHOLD];
+
PIKE
_
STRING_CONTENTS
;
+
p_wchar1
str
[SHORT_STRING_THRESHOLD];
}; struct short_pike_string2 {
-
struct pike
_
string str
;
-
p_wchar2
data
[SHORT_STRING_THRESHOLD];
+
PIKE
_
STRING_CONTENTS
;
+
p_wchar2
str
[SHORT_STRING_THRESHOLD];
};
-
#undef BLOCK_ALLOC_NEXT
-
#define BLOCK_ALLOC_NEXT str.next
-
+
BLOCK_ALLOC(short_pike_string0, SHORT_STRING_BLOCK) BLOCK_ALLOC(short_pike_string1, SHORT_STRING_BLOCK) BLOCK_ALLOC(short_pike_string2, SHORT_STRING_BLOCK)
-
#undef BLOCK_ALLOC_NEXT
-
#define BLOCK_ALLOC_NEXT next
-
+
#define really_free_short_pike_string(s) do { \ if (!s->size_shift) { \ really_free_short_pike_string0((struct short_pike_string0 *)s); \