static void sstringstats(int hooknum, void *arg);
static void salloc(void);
-#ifndef USE_VALGRIND
+#ifndef SSTRING_MMAP
#define sunprotect(x)
#define sunprotectb(x)
#define MAP_ANON MAP_ANONYMOUS
#endif
-#endif /* USE_VALGRIND */
+#endif /* SSTRING_MMAP */
void initsstring() {
int i;
registerhook(HOOK_CORE_STATSREQUEST,&sstringstats);
}
-#ifndef USE_VALGRIND
+#ifndef SSTRING_MMAP
void finisstring() {
nsfreeall(POOL_SSTRING);
}
ssmem=(char *)nsmalloc(POOL_SSTRING, SSTRING_ALLOC);
ssmemfree=SSTRING_ALLOC;
}
-#endif /* USE_VALGRIND */
+#endif /* SSTRING_MMAP */
sstring *findsstring(const char *str) {
unsigned int hash=crc32(str)%SSTRING_HASHSIZE;
if (!ssp) {
sshash[hash]=ss->next;
} else {
-#ifndef USE_VALGRIND
+#ifndef SSTRING_MMAP
ssp->next=ss->next;
#else
if (ssp->block!=ss->block) {
if (ssmemfree>sizeof(sstring)) {
retval=(sstring *)ssmem;
sunprotectb(mblock);
-#ifdef USE_VALGRIND
+#ifdef SSTRING_MMAP
retval->block=mblock;
#endif
retval->alloc=(ssmemfree-sizeof(sstring));
strcpy(retval->content,strbuf);
retval->refcount=1;
-#ifdef USE_VALGRIND
+#ifdef SSTRING_MMAP
if(!foreignblock)
retval->block = mblock;
#endif
return strncmp(ss1->content, ss2->content, ss1->length);
}
-#ifdef USE_VALGRIND
+#ifdef SSTRING_MMAP
void finisstring() {
struct mblock_list *c, *n;
for (c=mblock_head;c;c=n) {
ssmem=(char *)mblock + sizeof(struct mblock_list);
ssmemfree=SSTRING_ALLOC-sizeof(struct mblock_list);
}
-#endif /* USE_VALGRIND */
+#endif /* SSTRING_MMAP */