diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | libversit/vobject.c | 17 |
2 files changed, 27 insertions, 1 deletions
@@ -1,3 +1,14 @@ +2002-04-01 Chris Toshok <toshok@ximian.com> + + * libversit/vobject.c (newStrItem): only include if USE_STRTBL is + defined. + (deleteStrItem): same. + (hashStr): same. + (lookupStr): if USE_STRTBL is defined, use existing behavior. if + not defined, just dup the string. + (unUseStr): if USE_STRTBL is defined, use existing behavior. if + not defined, just free the string. + 2002-04-01 Dan Winship <danw@ximian.com> Darwin/OS X portability from Max Horn <max@quendi.de> diff --git a/libversit/vobject.c b/libversit/vobject.c index 93f5c163dc..dd0d1131ed 100644 --- a/libversit/vobject.c +++ b/libversit/vobject.c @@ -48,6 +48,7 @@ DFARS 252.227-7013 or 48 CFR 52.227-19, as applicable. #include <stdio.h> #include <fcntl.h> +#define USE_STRTBL #define NAME_OF(o) o->id #define VALUE_TYPE(o) o->valType @@ -142,6 +143,7 @@ DLLEXPORT(void) deleteStr(const char *p) } +#ifdef USE_STRTBL static StrItem* newStrItem(const char *s, StrItem *next) { StrItem *p = (StrItem*)malloc(sizeof(StrItem)); @@ -155,7 +157,7 @@ static void deleteStrItem(StrItem *p) { free((void*)p); } - +#endif /*---------------------------------------------------------------------- The following function provide accesses to VObject's value. @@ -609,6 +611,7 @@ DLLEXPORT(void) cleanVObjects(VObject *list) /*---------------------------------------------------------------------- The following is a String Table Facilities. ----------------------------------------------------------------------*/ +#ifdef USE_STRTBL #define STRTBLSIZE 255 @@ -624,8 +627,11 @@ static unsigned int hashStr(const char *s) return h % STRTBLSIZE; } +#endif + DLLEXPORT(const char*) lookupStr(const char *s) { +#ifdef USE_STRTBL StrItem *t; unsigned int h = hashStr(s); if ((t = strTbl[h]) != 0) { @@ -640,10 +646,14 @@ DLLEXPORT(const char*) lookupStr(const char *s) s = dupStr(s,0); strTbl[h] = newStrItem(s,strTbl[h]); return s; +#else + return dupStr(s, 0); +#endif } DLLEXPORT(void) unUseStr(const char *s) { +#ifdef USE_STRTBL StrItem *t, *p; unsigned int h = hashStr(s); if ((t = strTbl[h]) != 0) { @@ -667,10 +677,14 @@ DLLEXPORT(void) unUseStr(const char *s) t = t->next; } while (t); } +#else + deleteStr (s); +#endif } DLLEXPORT(void) cleanStrTbl() { +#ifdef USE_STRTBL int i; for (i=0; i<STRTBLSIZE;i++) { StrItem *t = strTbl[i]; @@ -683,6 +697,7 @@ DLLEXPORT(void) cleanStrTbl() } while (t); strTbl[i] = 0; } +#endif } |