aboutsummaryrefslogtreecommitdiffstats
path: root/epan/ftypes/ftypes.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2003-12-02 21:15:49 +0000
committerGuy Harris <guy@alum.mit.edu>2003-12-02 21:15:49 +0000
commitbd9f96738c50f2d8eb5f65cb1eeef88abaa6ba58 (patch)
treebba10b00745ee2278670863e1574d7760e2fec79 /epan/ftypes/ftypes.h
parent98c4d5d030c62c47200d56734e2cb7cd5fa5a20f (diff)
From Didier Gautheron: put an "fvalue_t" structure into a "field_info"
structure, rather than separately allocating "fvalue_t"s and having the "field_info" structure point to them - this appears to speed up protocol tree construction a bit. svn path=/trunk/; revision=9146
Diffstat (limited to 'epan/ftypes/ftypes.h')
-rw-r--r--epan/ftypes/ftypes.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/epan/ftypes/ftypes.h b/epan/ftypes/ftypes.h
index 9adf60e84b..ab7052c904 100644
--- a/epan/ftypes/ftypes.h
+++ b/epan/ftypes/ftypes.h
@@ -1,7 +1,7 @@
/* ftypes.h
* Definitions for field types
*
- * $Id: ftypes.h,v 1.22 2003/12/02 09:47:23 sahlberg Exp $
+ * $Id: ftypes.h,v 1.23 2003/12/02 21:15:48 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -208,16 +208,24 @@ struct _ftype_t {
fvalue_t*
fvalue_new(ftenum_t ftype);
+void
+fvalue_init(fvalue_t *fv, ftenum_t ftype);
+
/* Free all memory used by an fvalue_t */
extern fvalue_t *fvalue_free_list;
-#define FVALUE_FREE(fv) \
+#define FVALUE_CLEANUP(fv) \
{ \
register FvalueFreeFunc free_value; \
- free_value = fv->ptr_u.ftype->free_value; \
+ free_value = (fv)->ptr_u.ftype->free_value; \
if (free_value) { \
- free_value(fv); \
+ free_value((fv)); \
} \
+ }
+
+#define FVALUE_FREE(fv) \
+ { \
+ FVALUE_CLEANUP(fv) \
SLAB_FREE(fv, fv->ptr_u.next, fvalue_free_list);\
}