Commit Graph

685 Commits

Author SHA1 Message Date
Jakub Zawadzki 0de43ce2dd Create sign extension routines in <wsutil/sign_ext.h>, use it in few places.
svn path=/trunk/; revision=54197
2013-12-17 21:36:33 +00:00
Michael Mann 79d336c664 Handle signed integers > 32 bits. Bug 8454 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8454)
svn path=/trunk/; revision=54183
2013-12-17 16:50:33 +00:00
Pascal Quantin a944c8ef7a Remove proto_tree_add_unicode_string()
svn path=/trunk/; revision=53869
2013-12-08 20:15:07 +00:00
Jakub Zawadzki 7ab18667e5 Drop proto_tree_add_unicode_string() from IP, IPv6, JSON dissectors.
Set .display to STR_UNICODE (instead of STR_ASCII).

svn path=/trunk/; revision=53827
2013-12-07 15:48:35 +00:00
Jakub Zawadzki ffb4e79de9 Add STR_ASCII, STR_UNICODE as possible displays for field_display_e
svn path=/trunk/; revision=53822
2013-12-07 11:50:43 +00:00
Jakub Zawadzki c67d38cf15 Rename base_display_* to field_display
This is preparation to support ->display for FT_STRING values.

svn path=/trunk/; revision=53820
2013-12-07 10:41:42 +00:00
Guy Harris 0cc1545d05 Move most of the plugin code from epan to wsutil and remove all
knowledge of particular types of plugins.  Instead, let particular types
of plugins register with the common plugin code, giving a name and a
routine to recognize that type of plugin.

In particular applications, only process the relevant plugin types.

Add a Makefile.common to the codecs directory.

svn path=/trunk/; revision=53710
2013-12-02 08:30:29 +00:00
Evan Huus df1aec4a6b Remove old (2009) and no-longer-necessary compatibility macro.
svn path=/trunk/; revision=53527
2013-11-23 22:03:48 +00:00
Gerald Combs b3a24c5cc4 Replace similar code with a common routine.
svn path=/trunk/; revision=53519
2013-11-23 01:06:30 +00:00
Jakub Zawadzki c0c26f8e2a 64-bits: reorder fields in struct _protocol to remove padding.
This patch decrease size of _protocol structure from 64B to 56B

svn path=/trunk/; revision=53328
2013-11-14 22:50:55 +00:00
Jakub Zawadzki 6f6d04e2f9 Move REPORT_DISSECTOR_BUG() body to proto_report_dissector_bug() function. Remove exceptions.h include from proto.h
svn path=/trunk/; revision=53231
2013-11-10 16:04:15 +00:00
Jakub Zawadzki 12d1509aa1 Move struct _ftype_t + callback typedefs + free macro to ftypes-int.h
svn path=/trunk/; revision=53223
2013-11-10 13:14:09 +00:00
Jakub Zawadzki 0b0bbf0965 Replace STRINGIFY with glib version.
svn path=/trunk/; revision=53193
2013-11-09 14:37:13 +00:00
Jakub Zawadzki 9aac55472c Put "private" to_str.c functions to to_str-int.h
svn path=/trunk/; revision=53187
2013-11-09 11:26:41 +00:00
Jakub Zawadzki 9297c9e780 Rename swar_count_bits() to ws_count_ones()
Try to make ws_count_ones() inline function.

svn path=/trunk/; revision=53178
2013-11-09 04:47:08 +00:00
Jakub Zawadzki e6944e68b9 Try to split ws_ctz() from hfinfo_bitshift().
svn path=/trunk/; revision=53176
2013-11-08 22:01:12 +00:00
Jakub Zawadzki ce6ca9a05d Add infrastructure for section-initializing protocol hfis (without array).
configure implementation later.

svn path=/trunk/; revision=53146
2013-11-07 20:14:18 +00:00
Evan Huus 8a0ef07000 Effectively remove the tree memory pool and port some of its behaviour to the
pinfo memory pool, they have exactly the same scope. Simplification and minor
performance win (one GHashTable we longer have to create/destroy on every
packet).

svn path=/trunk/; revision=53076
2013-11-04 14:12:59 +00:00
Anders Broman 39515def5f Increase PROTO_PRE_ALLOC_HF_FIELDS_MEM
svn path=/trunk/; revision=53009
2013-10-31 21:26:27 +00:00
Anders Broman 1e6927dbb3 Fix proto.c:4498: warning: 'compare_filter_name' defined but not used
svn path=/trunk/; revision=52975
2013-10-29 23:18:26 +00:00
Anders Broman c864a20398 Optimize proto_get_id_by_filter_name() by using the existing hastable for proto_filter_names.
svn path=/trunk/; revision=52972
2013-10-29 22:17:18 +00:00
Jeff Morriss de0fda9436 Revert r52905 and r52908: they're causing plenty of fuzz failures.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9323 is tracking the fix.

svn path=/trunk/; revision=52966
2013-10-29 21:18:22 +00:00
Jeff Morriss 9259176f87 As pointed by Evan: don't leak memory when the string pointer is NULL.
svn path=/trunk/; revision=52908
2013-10-27 22:40:55 +00:00
Jeff Morriss 8e2f00bf3d Fix https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9323 :
Actually handle non-NULL-terminated FT_STRINGs properly.

svn path=/trunk/; revision=52905
2013-10-27 21:56:58 +00:00
Evan Huus 5b9ec08eae Optimization: in test_length there's no need to validate that the count value
for FT_UINT_STRINGs and FT_UINT_BYTEs is still in the TVB. Any infinite loop
that adds a counted field ought to be extracting the length for its own offset
anyways, in which case it will overflow on the next iteration and won't actually
loop forever.

svn path=/trunk/; revision=52766
2013-10-22 16:02:13 +00:00
Jakub Zawadzki bad81b517f Reintroduce back epan_dissect_reset(), proto_tree_reset()
This time it makes more sense, cause for each dissection we need two wmem allocators.
Reseting wmem allocator is much faster than destroy & create.

svn path=/trunk/; revision=52706
2013-10-20 10:21:25 +00:00
Jakub Zawadzki 336befd903 Remove allocation stem from PROTO_NODE_NEW() macro.
Tree root-node will be allocated using g_slice()

svn path=/trunk/; revision=52704
2013-10-20 10:03:32 +00:00
Evan Huus cbe8af0a8b Revert the optimization in r52578. As Jakub predicted, it caused at least one
infinite loop to pop up. We're just going to have to eat the performance hit.
(https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9282)

svn path=/trunk/; revision=52660
2013-10-17 12:24:25 +00:00
Evan Huus efdbb598b8 So a while back Jeff added some code to check that the offset+length passed to
proto_tree_add_item was valid *before* we short-circuited based on a NULL tree.
This was good in that it removed a common source of really-long-loop bugs. It
was less good in that it cost us about 8% in speed when doing a tree-less
dissection, but we decided the tradeoff was worth it.

After Anders' recent mail to -dev about performance, I started thinking about
how to optimize this. It occurred to me that the vast majority of the logic
involved in the check was dealing with the length value - fetching the actual
length if it was a counted string, calculating the length if it was -1, adding
the length to the offset in a way that was free from overflows, etc.

All of this is (theoretically) unnecessary - simply checking the offset without
worrying about the length will still catch the very-long-loops, since it is the
offset that increases in each iteration, not the length.

All that to justify:
- implement tvb_ensure_offset_exists which throws an exception if the offset is
  not within the tvb
- use it instead of all the complicated other logic in the pre-short-circuit
  step of proto_tree_add_item and friends

This gives us back about 3/4 of the performance we lost in the original patch.
We're still ~2% slower than without any check, but this is the best I can think
of right now.

svn path=/trunk/; revision=52578
2013-10-13 04:54:14 +00:00
Evan Huus c2b2d204db Redo r52569 in a way that doesn't break the GUI. Add a mem_pool member to
tree_data and reference it directly when allocating/freeing tree items. This
lets us keep multiple around when we need them, and still lets us use
wmem_free_all for a major speedup. It also, coincidentally, lets us get rid of
the annoying fi_tmp hack that was needed before, since that element gets swept
up in the free_all with everything else.

Keep one pool cached to avoid creating/destroying a pool for each packet,
another minor performance win.

The various changes in approach seem to balance out pretty much exactly, this
still gives ~11% over pre-52569.

svn path=/trunk/; revision=52573
2013-10-12 21:01:17 +00:00
Evan Huus 2e1497b532 Revert r52569, it breaks the GUI since that sometimes has multiple trees active
at once.

svn path=/trunk/; revision=52572
2013-10-12 18:14:19 +00:00
Evan Huus 540e9c745d Use wmem_free_all on the tree pool rather than freeing each node, label and
field_info separately. We still have to walk the tree in order to free certain
fvalues, but that's not a big deal. Another ~11% speed-up running "tshark -nVr"
on a large capture.

svn path=/trunk/; revision=52569
2013-10-12 17:57:51 +00:00
Evan Huus d19a20746b Use a wmem block allocator to allocate field_infos, proto_nodes and item_labels.
Even without making use of free_all (which should be possible) this still
results in ~8% speedup running "tshark -nVr" on a large file in my tests.

svn path=/trunk/; revision=52568
2013-10-12 17:32:41 +00:00
Michael Mann 9ccefb0ecd Prefix all "Wireshark application specific" display filters with a "_ws." to distinguish them from dissector filters.
This was committed now to get it into the 1.11 release so users can start getting used to the changed filter names.

svn path=/trunk/; revision=52462
2013-10-09 12:56:19 +00:00
Michael Mann ee208c8dcc Add support for RELATIVE-OID ASN.1 type. Bug 9192 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9192)
From Ed Beroset.

svn path=/trunk/; revision=52393
2013-10-06 02:31:10 +00:00
Michael Mann a891f3e70b Make expert items used in "low level" proto functions filterable (and ensure they are called even with a NULL tree). I don't really like the Type Length Mismatch "protocol", but it doesn't seem that much different than the exception "protocols".
svn path=/trunk/; revision=52341
2013-10-03 01:54:02 +00:00
Evan Huus ccbb52b436 Add a dissector assert to _set_bytes like the one in _set_oid, noticed while
debugging https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9214

svn path=/trunk/; revision=52327
2013-10-01 22:50:29 +00:00
Evan Huus f1ba7e1095 The pointer into proto_tree_add_oid can be NULL if the length is 0. Exposed
because wmem_alloc(pool, 0) returns NULL (like pretty much every other
malloc-style function) where ep_ or se_ alloc did not.

Fixes https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9175

svn path=/trunk/; revision=52187
2013-09-23 12:09:20 +00:00
Pascal Quantin 102c452bcb More emem -> wmem conversion:
- tvb_get_g_stringz()/tvb_get_ephemeral_stringz()/tvb_get_seasonal_stringz() -> tvb_get_stringz()
- tvb_get_g_stringz_enc()/tvb_get_ephemeral_stringz_enc() -> tvb_get_stringz_enc()
- tvb_get_ephemeral_unicode_stringz() -> tvb_get_unicode_stringz()
- tvb_bcd_dig_to_ep_str() -> tvb_bcd_dig_to_wmem_packet_str()
- update docs accordingly

svn path=/trunk/; revision=52180
2013-09-22 20:04:35 +00:00
Pascal Quantin a0c53ffaa1 emem -> wmem conversion:
- ep_tvb_get_bits() -> wmem_packet_tvb_get_bits()
- tvb_g_memdup()/ep_tvb_memdup() -> tvb_memdup()
- tvb_fake_unicode()/tvb_get_ephemeral_faked_unicode() -> tvb_get_faked_unicode()
- tvb_get_g_string()/tvb_get_ephemeral_string()/tvb_get_seasonal_string() -> tvb_get_string()
- tvb_get_g_unicode_string()/tvb_get_ephemeral_unicode_string() -> tvb_get_unicode_string()
- tvb_get_ephemeral_string_enc() -> tvb_get_string_enc()
- update docs accordingly

svn path=/trunk/; revision=52172
2013-09-22 15:50:55 +00:00
Evan Huus 6df83e8078 Add _g_ to the names of functions that allocate glib memory. This is a bit more
explicit, and frees up the "generic" names (like tvb_memdup) for new signatures
that take the appropriate wmem pool.

Majority of the conversion done with sed.

svn path=/trunk/; revision=52164
2013-09-21 17:04:41 +00:00
Bill Meier 3bb06ab6a5 Fix proto_registrar_dump_protocols() bug introduced by the
implementation of BASE_VAL64_STRING value_strings.

Fixes 'tshark -G values' crash.

svn path=/trunk/; revision=52121
2013-09-17 18:33:03 +00:00
Guy Harris aa8fbf09d2 The secs field of an nstime_t is a time_t, so cast to that.
svn path=/trunk/; revision=51981
2013-09-12 20:31:31 +00:00
Jörg Mayer 934cc4526d Make proto.c compile on my system (linux, 32 bit)
[-Werror,-Wshorten-64-to-32]
                                time_stamp.secs = (todsecs  / 1000000) - TOD_BASETIME;
                                                ~ ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
/home/jmayer/work/wireshark/svn/trunk/epan/proto.c:1613:44: error: implicit conversion
      loses integer precision: 'unsigned long long' to 'time_t' (aka 'long')
      [-Werror,-Wshorten-64-to-32]
                                time_stamp.secs = (todsecs  / 1000000) - TOD_BASETIME;
                                                ~ ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~

svn path=/trunk/; revision=51978
2013-09-12 20:07:48 +00:00
Evan Huus 3d5ed04f60 Add casts to fix mac buildbots.
svn path=/trunk/; revision=51975
2013-09-12 17:17:42 +00:00
Evan Huus f8693e35e0 From RobiOneKenobi via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9072
Add support for Time-of-Day timestamp format from z/OS.

svn path=/trunk/; revision=51974
2013-09-12 16:56:37 +00:00
Michael Mann 1b009df749 Couldn't quite figure out how to make the expert items in proto.c and the LUA API filterable (suggestions welcome!), but I wanted to start forcing dissectors to use the filterable expert API (nothing like compile errors to force change!). I created expert_add_info_format_internal (original expert_add_info_format) and used it as a placeholder for proto.c/LUA API until a solution is created. The "new" expert_add_info_format will be the "old" expert_add_info_format_text, and I'll slowly do the search/replace.
For those with dissectors outside the source tree, please see tools/convert_expert_add_info_format.pl for help with the conversion.  Please do not use expert_add_info_format_internal, as it's support time will be very short lived.

svn path=/trunk/; revision=51844
2013-09-08 19:32:10 +00:00
Evan Huus 304bbabbbe From Jiri Engelthaler via
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9055

Add support for bitmask set for signed integer types.

svn path=/trunk/; revision=51522
2013-08-26 16:23:55 +00:00
Jakub Zawadzki 850f80fdc1 proto: simplify proto_tree_add_pi() remove out pointer to field_info *
field_info can be already get using PNODE_FINFO(return_value)

svn path=/trunk/; revision=51479
2013-08-22 21:20:50 +00:00
Jakub Zawadzki 4e870dd240 Fix few concept of new api tree:
- (for now) keep ABI, restore prototype of old proto_tree_add_item, add new proto_tree_add_item_new
- add few helpers for boolean, time, string which will do ->id
- don't use HFI_INIT directly, use it by another macro (MSVC has very small limit for section name)

svn path=/trunk/; revision=51401
2013-08-17 07:16:12 +00:00
Jakub Zawadzki 9d79b3233a Introduce new proto_tree API required for hf_ variables removal.
svn path=/trunk/; revision=51396
2013-08-16 21:21:52 +00:00
Jakub Zawadzki 97bddef1a2 Try to fix compilation under MSVC
__builtin_ctz() with bitmask == 0 is UB, so only do g_assert there.

svn path=/trunk/; revision=51176
2013-08-06 21:06:56 +00:00
Jakub Zawadzki 9cfac1227d Replace hfinfo pointer to same_name_prev, with same_name_prev_id.
svn path=/trunk/; revision=51175
2013-08-06 20:53:47 +00:00
Jakub Zawadzki 72ea2f9c9c Remove hfinfo->bitshift member, add hfinfo_bitshift() to get it.
svn path=/trunk/; revision=51174
2013-08-06 20:10:59 +00:00
Jakub Zawadzki 93f56d8a77 Optimize wrs_count_bitshift()
- Use __builtin_ctz for GCC/clang
- Do multiply and lookup on other platforms

svn path=/trunk/; revision=51173
2013-08-06 19:53:54 +00:00
Michael Mann 81f3faf1e8 Completely remove support for proto_item_set_expert_flags.
svn path=/trunk/; revision=51144
2013-08-05 02:25:45 +00:00
Jakub Zawadzki 430bd9eacc Optimize marking label as truncated in proto_tree_set_representation_*()
svn path=/trunk/; revision=51036
2013-07-30 20:02:24 +00:00
Martin Kaiser 3b92f760ed add a NULL check to report_type_length_mismatch()
this might be called via proto_tree_add_item() with tree==NULL
which results in a crash

svn path=/trunk/; revision=51020
2013-07-29 21:10:13 +00:00
Evan Huus dbabc55955 Much simpler (and possibly faster) fix for the 64-bit value string label issue.
svn path=/trunk/; revision=50983
2013-07-28 20:05:04 +00:00
Evan Huus 4e5ac2989c As caught by Stig: 64-bit value strings could print the field name twice.
Don't do that.

svn path=/trunk/; revision=50982
2013-07-28 19:56:23 +00:00
Jakub Zawadzki 5b15390b3a Store protocol fields in single linked list, saves about 1 MB of memory.
svn path=/trunk/; revision=50967
2013-07-28 10:47:31 +00:00
Michael Mann f3dac73d38 Fix compile error that resulted from whitespace cleanup.
svn path=/trunk/; revision=50963
2013-07-28 00:11:30 +00:00
Michael Mann a87f47c02c Make many items filterable for Vines dissectors.
Add support for FT_VINES type.

svn path=/trunk/; revision=50962
2013-07-28 00:07:49 +00:00
Jakub Zawadzki 0d414ac0fd make some variables static
svn path=/trunk/; revision=50952
2013-07-27 20:57:58 +00:00
Evan Huus 5ede3bcde0 Follow-up to r50935: add support for 64-bit value strings in more places that
need it, I think this is all of them.

svn path=/trunk/; revision=50941
2013-07-26 23:51:00 +00:00
Evan Huus c0cac8611e Squelch MSVC warnings. It doesn't know that DISSECTOR_ASSERT_NOT_REACHED doesn't
return.

svn path=/trunk/; revision=50939
2013-07-26 22:52:34 +00:00
Evan Huus 6e3a30794e Add 64-bit value strings and the appropriate tooling (including yet another
overloaded use of the DISPLAY field). Thanks to Jakub for pointing out I'd done
this wrong the first time (months ago in r49357).

Fixes severity display for collectd protocol, originally filed at:
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8472

svn path=/trunk/; revision=50935
2013-07-26 21:51:39 +00:00
Jeff Morriss d58c13c363 As pointed out in https://www.wireshark.org/lists/wireshark-dev/201307/msg00153.html :
The fix for https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3290 needs
to allow for giving a length of -1 for FT_STRINGZ's.

This is another fix for https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8960
(in addition to r50836).  There's no point in reverting that revision, though,
since there was no need to use a length of -1 in that case.

svn path=/trunk/; revision=50892
2013-07-25 18:37:18 +00:00
Jakub Zawadzki 696a79707b Optimize proto_item_append_string()
- When old string empty just pass new one (like: frame.protocols)
- if not, use ep_strconcat()

svn path=/trunk/; revision=50890
2013-07-25 17:19:17 +00:00
Guy Harris 8bd5a3649a Have get_uint_value() assume it's being passed an encoding value, which
isn't necessarily going to be zero if the item is big-endian.

The last argument to test_length() is an encoding, not a big-endian vs.
little-endian Boolean; name it appropriately.

This fixes bug 8953.

svn path=/trunk/; revision=50806
2013-07-22 23:11:07 +00:00
Jakub Zawadzki 547eabc949 Use label_fill also when boolean / bitfield.
svn path=/trunk/; revision=50682
2013-07-16 22:21:10 +00:00
Jakub Zawadzki 13e07be25f optimize: remove g_snprintf()'s from label_fill[_descr]
svn path=/trunk/; revision=50681
2013-07-16 22:09:29 +00:00
Alexis La Goutte 7c5b471584 Fix some Dead Store (Dead assignement/Dead increment) Warning found by Clang
svn path=/trunk/; revision=50632
2013-07-15 18:06:29 +00:00
Jakub Zawadzki e26b65f0ec proto_custom_set() cleanup
- Merge _UINT / _INT into one case
- fix possible generation of wrong expression ("some_integer") for unknown value in BASE_NONE field 

svn path=/trunk/; revision=50548
2013-07-13 09:14:25 +00:00
Jeff Morriss b53ced1e6a get_hfi_and_length() hasn't returned the hfi since r50015: rename it
to get_hfi_length().

svn path=/trunk/; revision=50509
2013-07-11 15:03:43 +00:00
Jeff Morriss 160c35c8e9 For consistency:
s/hf_index/hfindex/g
s/hf_info/hfinfo/g

svn path=/trunk/; revision=50507
2013-07-11 14:58:11 +00:00
Jeff Morriss b6ee11e928 Fix the very long loop fuzz failure reported in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8923 :
Apply the fix for https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3290
to proto_tree_add_bits_item().  That is, test that we have offset+length bytes
left in the TVB before trying to fake the item.

svn path=/trunk/; revision=50504
2013-07-11 14:46:30 +00:00
Jakub Zawadzki 87646b1126 Fixes for tmp_fld_check_value():
- FT_FRAMENUM can't have strings
- mask hfinfo->display to compare with valid BASE_ value

svn path=/trunk/; revision=50444
2013-07-08 05:59:07 +00:00
Jakub Zawadzki ed4622dc7f ups? first add + 1, then multiply.
svn path=/trunk/; revision=50438
2013-07-07 21:32:12 +00:00
Jakub Zawadzki d4f1a2c599 tree_is_expanded: make it bit array.
Right now we have about 36K of ett items, and tree_is_expanded takes: 144K of memory (36K*sizeof(gboolean))
By making tree_is_expanded bit array, it reduce size to 4.5K (36K/8)

svn path=/trunk/; revision=50434
2013-07-07 17:13:17 +00:00
Jakub Zawadzki 792f35a28c Make tree_is_expanded array static, add setter/getter function.
svn path=/trunk/; revision=50433
2013-07-07 16:33:49 +00:00
Jakub Zawadzki 5ef777c80b proto.c: add few more cases when oct/hex can show up with signed number
remove invalid comment about HEX/OCT print not supported for signed numbers.

svn path=/trunk/; revision=50427
2013-07-06 23:46:31 +00:00
Jakub Zawadzki 242e18dace PROTO_REGISTRAR_GET_NTH() not needed after TRY_TO_FAKE_THIS_ITEM
svn path=/trunk/; revision=50376
2013-07-03 22:57:53 +00:00
Jakub Zawadzki 99e03acfd8 Optimize proto_item_prepend_text: if there's no fi->rep avoid one strlcpy().
svn path=/trunk/; revision=50372
2013-07-03 17:44:46 +00:00
Jakub Zawadzki 9c58621893 - rename and optimize proto_data_add_maybe_interesting_field
- proto_tree_add_node() double checks if tree_type is valid remove second one (first one is more verbose)

svn path=/trunk/; revision=50328
2013-07-02 21:26:14 +00:00
Jakub Zawadzki 68c2c57037 Remove tree argument from TRY_TO_FAKE_THIS_REPR macro
PTREE_DATA should be the same for both *tree* and *pi*

svn path=/trunk/; revision=50326
2013-07-02 20:51:58 +00:00
Jakub Zawadzki b0e04aca73 Rewrite proto_lookup_or_create_interesting_hfids() and rename to proto_data_add_maybe_interesting_field
Now proto_data_add_maybe_interesting_field:
- it actually add field_info to interesting hash_tree
- accept only required parameters
- is called only by proto_tree_add_node

svn path=/trunk/; revision=50321
2013-07-02 19:23:10 +00:00
Jakub Zawadzki 1d2409dd69 Micro-optimize common case for proto_tree_add_pi() assume tree != NULL, pfi != NULL
Fix calles.

svn path=/trunk/; revision=50320
2013-07-02 18:56:48 +00:00
Jakub Zawadzki cce4ad3c66 tree == NULL check is already done by TRY_TO_FAKE_THIS_ITEM() macro.
svn path=/trunk/; revision=50319
2013-07-02 18:45:47 +00:00
Jakub Zawadzki 874f119225 Remove not needed TRY_TO_FAKE_THIS_ITEM() from proto_tree_*_format & proto_tree_*_format_value
Right now for proto_tree_add format & _format_value TRY_TO_FAKE_THIS_ITEM() is called twice
one from 'format' function, second time from 'no format' function.

This reduces size of .text by 10K:
   text    data     bss     dec     hex filename
  76012     112      56   76180   12994 proto-after.o
  86324     112      56   86492   151dc proto-before.o


svn path=/trunk/; revision=50318
2013-07-02 18:36:00 +00:00
Jakub Zawadzki d27f026884 cleanup, put result of decode_bitfield_value directly to fi->rep->representation
svn path=/trunk/; revision=50316
2013-07-02 17:09:38 +00:00
Jakub Zawadzki 2ab52de572 Add TRY_TO_FAKE_THIS_REPR into proto_tree_set_representation_value() call.
Remove TRY_TO_FAKE_THIS_REPR from calling functions.

svn path=/trunk/; revision=50314
2013-07-02 16:09:56 +00:00
Jakub Zawadzki d0c5a5561d snprintf -> strlcpy.
svn path=/trunk/; revision=50311
2013-07-02 14:14:52 +00:00
Jakub Zawadzki 7b5a0e4a15 Cleanup fill_label_[u]int64 to fill_label_number64
svn path=/trunk/; revision=50299
2013-07-01 15:24:42 +00:00
Jakub Zawadzki 7dc10daffe Rewrite hfinfo_numeric_value_format as a special case for _hfinfo_number_value_format
cleanup some functions.

svn path=/trunk/; revision=50290
2013-07-01 09:46:50 +00:00
Jeff Morriss 772b17a6c6 Actually use the new environment variable created in r49784--apparently I forgot to check in this file (sigh).
svn path=/trunk/; revision=50257
2013-06-30 16:16:13 +00:00
Jakub Zawadzki 33abb4e091 proto_custom_set: don't fetch values twice.
svn path=/trunk/; revision=50252
2013-06-30 13:23:31 +00:00
Guy Harris 882db1c5fb Squelch a warning.
Rename the "is_int" argument to fill_label_number() to make it clearer
what it indicates, i.e. whether the number is signed or unsigned.

svn path=/trunk/; revision=50224
2013-06-28 22:47:50 +00:00
Jakub Zawadzki d0c862bfa6 Merge fill_label_[u]int to fill_label_number, hfinfo_[u]int_value_format to hfinfo_number_value_format
svn path=/trunk/; revision=50220
2013-06-28 21:46:41 +00:00
Jakub Zawadzki 8ccfc17cf2 Merge _hfinfo_int_value_format and _hfinfo_uint_value_format to one function hfinfo_number_vals_format
In hfinfo_number_vals_format check how hf should be formatted.

svn path=/trunk/; revision=50217
2013-06-28 19:54:04 +00:00