aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMartin Kaiser <wireshark@kaiser.cx>2017-03-16 22:34:49 +0100
committerMichael Mann <mmann78@netscape.net>2017-03-19 12:08:33 +0000
commit74e793e8bac3013f0474fdf398608ba24506307c (patch)
tree132b6fa5c33139472d8a6d2fc7e7cd07b401c83e /epan
parentfd9a595aedf4aa15cb5460766175a19cd2e75047 (diff)
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 <wireshark@kaiser.cx> Petri-Dish: Martin Kaiser <wireshark@kaiser.cx> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
-rw-r--r--epan/ftypes/ftype-bytes.c27
-rw-r--r--epan/ftypes/ftype-double.c4
-rw-r--r--epan/ftypes/ftype-guid.c3
-rw-r--r--epan/ftypes/ftype-ieee-11073-float.c6
-rw-r--r--epan/ftypes/ftype-integer.c63
-rw-r--r--epan/ftypes/ftype-ipv4.c3
-rw-r--r--epan/ftypes/ftype-ipv6.c3
-rw-r--r--epan/ftypes/ftype-none.c3
-rw-r--r--epan/ftypes/ftype-pcre.c3
-rw-r--r--epan/ftypes/ftype-protocol.c3
-rw-r--r--epan/ftypes/ftype-string.c12
-rw-r--r--epan/ftypes/ftype-time.c6
-rw-r--r--epan/ftypes/ftypes-int.h5
-rw-r--r--epan/ftypes/ftypes.c6
14 files changed, 54 insertions, 93 deletions
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