aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2013-07-02 18:56:48 +0000
committerJakub Zawadzki <darkjames-ws@darkjames.pl>2013-07-02 18:56:48 +0000
commit1d2409dd69bb873d773a385ece42fa6aa8489726 (patch)
tree4dc079f993e9fb058eb8f43021417836ee9a32d2 /epan
parentcce4ad3c660753308c2d88ab3111f0e5e3771f0e (diff)
Micro-optimize common case for proto_tree_add_pi() assume tree != NULL, pfi != NULL
Fix calles. svn path=/trunk/; revision=50320
Diffstat (limited to 'epan')
-rw-r--r--epan/proto.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/epan/proto.c b/epan/proto.c
index 01fab10cf3..2626ae6b81 100644
--- a/epan/proto.c
+++ b/epan/proto.c
@@ -974,8 +974,12 @@ static proto_item *
proto_tree_add_text_node(proto_tree *tree, tvbuff_t *tvb, gint start, gint length)
{
proto_item *pi;
+ field_info *new_fi;
- pi = proto_tree_add_pi(tree, &hfi_text_only, tvb, start, &length, NULL);
+ if (tree == NULL)
+ return NULL;
+
+ pi = proto_tree_add_pi(tree, &hfi_text_only, tvb, start, &length, &new_fi);
return pi;
}
@@ -1844,12 +1848,13 @@ proto_tree_add_none_format(proto_tree *tree, const int hfindex, tvbuff_t *tvb,
proto_item *pi;
va_list ap;
header_field_info *hfinfo;
+ field_info *new_fi;
TRY_TO_FAKE_THIS_ITEM(tree, hfindex, hfinfo);
DISSECTOR_ASSERT(hfinfo->type == FT_NONE);
- pi = proto_tree_add_pi(tree, hfinfo, tvb, start, &length, NULL);
+ pi = proto_tree_add_pi(tree, hfinfo, tvb, start, &length, &new_fi);
TRY_TO_FAKE_THIS_REPR(tree, pi);
@@ -3324,8 +3329,7 @@ proto_tree_add_node(proto_tree *tree, field_info *fi)
/* Generic way to allocate field_info and add to proto_tree.
- * Sets *pfi to address of newly-allocated field_info struct, if pfi is
- * non-NULL. */
+ * Sets *pfi to address of newly-allocated field_info struct */
static proto_item *
proto_tree_add_pi(proto_tree *tree, header_field_info *hfinfo, tvbuff_t *tvb, gint start,
gint *length, field_info **pfi)
@@ -3334,9 +3338,6 @@ proto_tree_add_pi(proto_tree *tree, header_field_info *hfinfo, tvbuff_t *tvb, gi
field_info *fi;
GPtrArray *ptrs;
- if (!tree)
- return NULL;
-
fi = alloc_field_info(tree, hfinfo, tvb, start, length);
pi = proto_tree_add_node(tree, fi);
@@ -3346,10 +3347,7 @@ proto_tree_add_pi(proto_tree *tree, header_field_info *hfinfo, tvbuff_t *tvb, gi
if (ptrs)
g_ptr_array_add(ptrs, fi);
- /* Does the caller want to know the fi pointer? */
- if (pfi) {
- *pfi = fi;
- }
+ *pfi = fi;
return pi;
}