From 74e793e8bac3013f0474fdf398608ba24506307c Mon Sep 17 00:00:00 2001 From: Martin Kaiser Date: Thu, 16 Mar 2017 22:34:49 +0100 Subject: ftypes: create a get_value union, move get_value_floating into the union Change-Id: I6bbaf6a7c8a3124e5eab7a7b97c6be082fe8beff Reviewed-on: https://code.wireshark.org/review/20611 Reviewed-by: Martin Kaiser Petri-Dish: Martin Kaiser Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann --- epan/ftypes/ftype-bytes.c | 27 ++++++---------- epan/ftypes/ftype-double.c | 4 +-- epan/ftypes/ftype-guid.c | 3 +- epan/ftypes/ftype-ieee-11073-float.c | 6 ++-- epan/ftypes/ftype-integer.c | 63 ++++++++++++------------------------ epan/ftypes/ftype-ipv4.c | 3 +- epan/ftypes/ftype-ipv6.c | 3 +- epan/ftypes/ftype-none.c | 3 +- epan/ftypes/ftype-pcre.c | 3 +- epan/ftypes/ftype-protocol.c | 3 +- epan/ftypes/ftype-string.c | 12 +++---- epan/ftypes/ftype-time.c | 6 ++-- epan/ftypes/ftypes-int.h | 5 ++- epan/ftypes/ftypes.c | 6 ++-- 14 files changed, 54 insertions(+), 93 deletions(-) (limited to 'epan') diff --git a/epan/ftypes/ftype-bytes.c b/epan/ftypes/ftype-bytes.c index a1749e4e00..aad3cf3685 100644 --- a/epan/ftypes/ftype-bytes.c +++ b/epan/ftypes/ftype-bytes.c @@ -738,14 +738,13 @@ ftype_register_bytes(void) bytes_repr_len, /* len_string_repr */ { .set_value_byte_array = bytes_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -774,14 +773,13 @@ ftype_register_bytes(void) bytes_repr_len, /* len_string_repr */ { .set_value_byte_array = bytes_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -810,14 +808,13 @@ ftype_register_bytes(void) bytes_repr_len, /* len_string_repr */ { .set_value_bytes = ax25_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_integer */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -846,14 +843,13 @@ ftype_register_bytes(void) bytes_repr_len, /* len_string_repr */ { .set_value_bytes = vines_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_integer */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -882,14 +878,13 @@ ftype_register_bytes(void) bytes_repr_len, /* len_string_repr */ { .set_value_bytes = ether_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -918,14 +913,13 @@ ftype_register_bytes(void) oid_repr_len, /* len_string_repr */ { .set_value_byte_array = oid_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -954,14 +948,13 @@ ftype_register_bytes(void) rel_oid_repr_len, /* len_string_repr */ { .set_value_byte_array = oid_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -990,14 +983,13 @@ ftype_register_bytes(void) bytes_repr_len, /* len_string_repr */ { .set_value_byte_array = system_id_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1026,14 +1018,13 @@ ftype_register_bytes(void) bytes_repr_len, /* len_string_repr */ { .set_value_bytes = fcwwn_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, diff --git a/epan/ftypes/ftype-double.c b/epan/ftypes/ftype-double.c index cb71a63228..5195a72e32 100644 --- a/epan/ftypes/ftype-double.c +++ b/epan/ftypes/ftype-double.c @@ -171,13 +171,13 @@ ftype_register_double(void) float_val_repr_len, /* len_string_repr */ { .set_value_floating = double_fvalue_set_floating }, /* union set_value */ + { .get_value_floating = value_get_floating }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - value_get_floating, /* get_value_floating */ cmp_eq, cmp_ne, @@ -206,13 +206,13 @@ ftype_register_double(void) double_val_repr_len, /* len_string_repr */ { .set_value_floating = double_fvalue_set_floating }, /* union set_value */ + { .get_value_floating = value_get_floating }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - value_get_floating, /* get_value_floating */ cmp_eq, cmp_ne, diff --git a/epan/ftypes/ftype-guid.c b/epan/ftypes/ftype-guid.c index cdf1ba6128..1a6aa921d4 100644 --- a/epan/ftypes/ftype-guid.c +++ b/epan/ftypes/ftype-guid.c @@ -136,14 +136,13 @@ ftype_register_guid(void) guid_repr_len, /* len_string_repr */ { .set_value_guid = guid_fvalue_set_guid }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, diff --git a/epan/ftypes/ftype-ieee-11073-float.c b/epan/ftypes/ftype-ieee-11073-float.c index 3e20cfcd6f..dbee9982bc 100644 --- a/epan/ftypes/ftype-ieee-11073-float.c +++ b/epan/ftypes/ftype-ieee-11073-float.c @@ -1439,14 +1439,13 @@ Example: 114 is 0x0072 sfloat_ieee_11073_val_repr_len, /* len_string_repr */ { .set_value_uinteger = sfloat_ieee_11073_value_set }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ sfloat_ieee_11073_value_get, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ sfloat_ieee_11073_cmp_eq, sfloat_ieee_11073_cmp_ne, @@ -1502,14 +1501,13 @@ Example: 36.4 is 0xFF00016C float_ieee_11073_val_repr_len, /* len_string_repr */ { .set_value_uinteger = float_ieee_11073_value_set }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ float_ieee_11073_value_get, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ float_ieee_11073_cmp_eq, float_ieee_11073_cmp_ne, diff --git a/epan/ftypes/ftype-integer.c b/epan/ftypes/ftype-integer.c index 08fcc5ff3c..c2a2576ad6 100644 --- a/epan/ftypes/ftype-integer.c +++ b/epan/ftypes/ftype-integer.c @@ -1027,14 +1027,13 @@ ftype_register_integers(void) char_repr_len, /* len_string_repr */ { .set_value_uinteger = set_uinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ get_uinteger, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1062,14 +1061,13 @@ ftype_register_integers(void) uinteger_repr_len, /* len_string_repr */ { .set_value_uinteger = set_uinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ get_uinteger, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1097,14 +1095,13 @@ ftype_register_integers(void) uinteger_repr_len, /* len_string_repr */ { .set_value_uinteger = set_uinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ get_uinteger, /* get_value_integer */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1132,14 +1129,13 @@ ftype_register_integers(void) uinteger_repr_len, /* len_string_repr */ { .set_value_uinteger = set_uinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ get_uinteger, /* get_value_integer */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1167,14 +1163,13 @@ ftype_register_integers(void) uinteger_repr_len, /* len_string_repr */ { .set_value_uinteger = set_uinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ get_uinteger, /* get_value_integer */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1202,14 +1197,13 @@ ftype_register_integers(void) uinteger64_repr_len, /* len_string_repr */ { .set_value_uinteger64 = set_uinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ get_uinteger64, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, @@ -1237,14 +1231,13 @@ ftype_register_integers(void) uinteger64_repr_len, /* len_string_repr */ { .set_value_uinteger64 = set_uinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ get_uinteger64, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, @@ -1272,14 +1265,13 @@ ftype_register_integers(void) uinteger64_repr_len, /* len_string_repr */ { .set_value_uinteger64 = set_uinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ get_uinteger64, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, @@ -1307,14 +1299,13 @@ ftype_register_integers(void) uinteger64_repr_len, /* len_string_repr */ { .set_value_uinteger64 = set_uinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ get_uinteger64, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, @@ -1342,14 +1333,13 @@ ftype_register_integers(void) integer_repr_len, /* len_string_repr */ { .set_value_sinteger = set_sinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ get_sinteger, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1377,14 +1367,13 @@ ftype_register_integers(void) integer_repr_len, /* len_string_repr */ { .set_value_sinteger = set_sinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ get_sinteger, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1412,14 +1401,13 @@ ftype_register_integers(void) integer_repr_len, /* len_string_repr */ { .set_value_sinteger = set_sinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ get_sinteger, /* get_value_integer */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1447,14 +1435,13 @@ ftype_register_integers(void) integer_repr_len, /* len_string_repr */ { .set_value_sinteger = set_sinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ get_sinteger, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1482,14 +1469,13 @@ ftype_register_integers(void) integer64_repr_len, /* len_string_repr */ { .set_value_sinteger64 = set_sinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ get_sinteger64, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, @@ -1517,14 +1503,13 @@ ftype_register_integers(void) integer64_repr_len, /* len_string_repr */ { .set_value_sinteger64 = set_sinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ get_sinteger64, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, @@ -1552,14 +1537,13 @@ ftype_register_integers(void) integer64_repr_len, /* len_string_repr */ { .set_value_sinteger64 = set_sinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ get_sinteger64, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, @@ -1587,14 +1571,13 @@ ftype_register_integers(void) integer64_repr_len, /* len_string_repr */ { .set_value_sinteger64 = set_sinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ get_sinteger64, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, @@ -1622,14 +1605,13 @@ ftype_register_integers(void) boolean_repr_len, /* len_string_repr */ { .set_value_uinteger64 = set_uinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ get_uinteger64, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ bool_eq, /* cmp_eq */ bool_ne, /* cmp_ne */ @@ -1658,14 +1640,13 @@ ftype_register_integers(void) ipxnet_repr_len, /* len_string_repr */ { .set_value_uinteger = set_uinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ get_uinteger, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1694,14 +1675,13 @@ ftype_register_integers(void) uinteger_repr_len, /* len_string_repr */ { .set_value_uinteger = set_uinteger }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ get_uinteger, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -1730,14 +1710,13 @@ ftype_register_integers(void) eui64_repr_len, /* len_string_repr */ { .set_value_uinteger64 = set_uinteger64 }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ get_uinteger64, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq64, cmp_ne64, diff --git a/epan/ftypes/ftype-ipv4.c b/epan/ftypes/ftype-ipv4.c index 2cc2579c2e..fd80cbbd95 100644 --- a/epan/ftypes/ftype-ipv4.c +++ b/epan/ftypes/ftype-ipv4.c @@ -186,14 +186,13 @@ ftype_register_ipv4(void) val_repr_len, /* len_string_repr */ { .set_value_uinteger = set_uinteger }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, diff --git a/epan/ftypes/ftype-ipv6.c b/epan/ftypes/ftype-ipv6.c index a56097fa70..4395ce765c 100644 --- a/epan/ftypes/ftype-ipv6.c +++ b/epan/ftypes/ftype-ipv6.c @@ -236,14 +236,13 @@ ftype_register_ipv6(void) ipv6_repr_len, /* len_string_repr */ { .set_value_bytes = ipv6_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, diff --git a/epan/ftypes/ftype-none.c b/epan/ftypes/ftype-none.c index a74ac2ba80..5b10d9bc6f 100644 --- a/epan/ftypes/ftype-none.c +++ b/epan/ftypes/ftype-none.c @@ -40,14 +40,13 @@ ftype_register_none(void) NULL, /* len_string_repr */ { NULL }, /* union set_value */ - + { NULL }, /* union get_value */ NULL, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ NULL, /* cmp_eq */ NULL, /* cmp_ne */ diff --git a/epan/ftypes/ftype-pcre.c b/epan/ftypes/ftype-pcre.c index e966ff43cc..97c1122aaf 100644 --- a/epan/ftypes/ftype-pcre.c +++ b/epan/ftypes/ftype-pcre.c @@ -164,14 +164,13 @@ ftype_register_pcre(void) gregex_repr_len, /* len_string_repr */ { .set_value_string = gregex_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ gregex_fvalue_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ NULL, /* cmp_eq */ NULL, /* cmp_ne */ diff --git a/epan/ftypes/ftype-protocol.c b/epan/ftypes/ftype-protocol.c index b0f4dce2f0..1be42345c5 100644 --- a/epan/ftypes/ftype-protocol.c +++ b/epan/ftypes/ftype-protocol.c @@ -464,14 +464,13 @@ ftype_register_tvbuff(void) val_repr_len, /* len_string_repr */ { .set_value_protocol = value_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, diff --git a/epan/ftypes/ftype-string.c b/epan/ftypes/ftype-string.c index b125eea514..d533a55369 100644 --- a/epan/ftypes/ftype-string.c +++ b/epan/ftypes/ftype-string.c @@ -241,14 +241,13 @@ ftype_register_string(void) string_repr_len, /* len_string_repr */ { .set_value_string = string_fvalue_set_string }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -276,14 +275,13 @@ ftype_register_string(void) string_repr_len, /* len_string_repr */ { .set_value_string = string_fvalue_set_string }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -311,14 +309,13 @@ ftype_register_string(void) string_repr_len, /* len_string_repr */ { .set_value_string = string_fvalue_set_string }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -346,14 +343,13 @@ ftype_register_string(void) string_repr_len, /* len_string_repr */ { .set_value_string = string_fvalue_set_string }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, diff --git a/epan/ftypes/ftype-time.c b/epan/ftypes/ftype-time.c index 20cc2bb0ba..84fd02f9cd 100644 --- a/epan/ftypes/ftype-time.c +++ b/epan/ftypes/ftype-time.c @@ -396,14 +396,13 @@ ftype_register_time(void) absolute_val_repr_len, /* len_string_repr */ { .set_value_time = time_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, @@ -431,14 +430,13 @@ ftype_register_time(void) relative_val_repr_len, /* len_string_repr */ { .set_value_time = time_fvalue_set }, /* union set_value */ - + { NULL }, /* union get_value */ value_get, /* get_value_ptr */ NULL, /* get_value_uinteger */ NULL, /* get_value_sinteger */ NULL, /* get_value_uinteger64 */ NULL, /* get_value_sinteger64 */ - NULL, /* get_value_floating */ cmp_eq, cmp_ne, diff --git a/epan/ftypes/ftypes-int.h b/epan/ftypes/ftypes-int.h index e74e0a6fa4..4c490dcc7e 100644 --- a/epan/ftypes/ftypes-int.h +++ b/epan/ftypes/ftypes-int.h @@ -104,13 +104,16 @@ struct _ftype_t { FvalueSetFloatingFunc set_value_floating; } set_value; + union { + FvalueGetFloatingFunc get_value_floating; + } get_value; + /* could be union */ FvalueGetFunc get_value_ptr; FvalueGetUnsignedIntegerFunc get_value_uinteger; FvalueGetSignedIntegerFunc get_value_sinteger; FvalueGetUnsignedInteger64Func get_value_uinteger64; FvalueGetSignedInteger64Func get_value_sinteger64; - FvalueGetFloatingFunc get_value_floating; FvalueCmp cmp_eq; FvalueCmp cmp_ne; diff --git a/epan/ftypes/ftypes.c b/epan/ftypes/ftypes.c index c6c60d707e..cd948ac467 100644 --- a/epan/ftypes/ftypes.c +++ b/epan/ftypes/ftypes.c @@ -654,8 +654,10 @@ fvalue_get_sinteger64(fvalue_t *fv) double fvalue_get_floating(fvalue_t *fv) { - g_assert(fv->ftype->get_value_floating); - return fv->ftype->get_value_floating(fv); + g_assert(fv->ftype->ftype == FT_FLOAT || + fv->ftype->ftype == FT_DOUBLE); + g_assert(fv->ftype->get_value.get_value_floating); + return fv->ftype->get_value.get_value_floating(fv); } gboolean -- cgit v1.2.3