diff options
Diffstat (limited to 'plugins/kaitai/rost')
-rw-r--r-- | plugins/kaitai/rost/browser.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/plugins/kaitai/rost/browser.c b/plugins/kaitai/rost/browser.c index 075c5ff..159915b 100644 --- a/plugins/kaitai/rost/browser.c +++ b/plugins/kaitai/rost/browser.c @@ -32,9 +32,10 @@ #include "browser-int.h" +#include "../records/bits.h" +#include "../records/delayed.h" #include "../records/item.h" #include "../records/list.h" -#include "../records/value.h" @@ -354,11 +355,14 @@ static bool g_kaitai_browser_reduce(GKaitaiBrowser *item, GScanContext *ctx, GSc else { - if (G_IS_RECORD_ITEM(item->record)) - result = g_record_item_get_value(G_RECORD_ITEM(item->record), &value); + if (G_IS_RECORD_BIT_FIELD(item->record)) + result = g_record_bit_field_get_value(G_RECORD_BIT_FIELD(item->record), &value); + + else if (G_IS_RECORD_DELAYED(item->record)) + result = g_record_delayed_compute_and_aggregate_value(G_RECORD_DELAYED(item->record), &value); - else if (G_IS_RECORD_VALUE(item->record)) - result = g_record_value_compute_and_aggregate_value(G_RECORD_VALUE(item->record), &value); + else if (G_IS_RECORD_ITEM(item->record)) + result = g_record_item_get_value(G_RECORD_ITEM(item->record), &value); else result = false; |