#include "config.h"
#include "tpg.h"
-#include <epan/emem.h>
+#include <epan/wmem/wmem.h>
#include <epan/packet.h>
extern guint32 tpg_ipv4(tvbparse_elem_t* e _U_) {
int len,
tvbparse_wanted_t* ignore,
void* private_data) {
- tpg_parser_data_t* tpg = ep_alloc(sizeof(tpg_parser_data_t));
+ tpg_parser_data_t* tpg = wmem_new(wmem_packet_scope(), tpg_parser_data_t);
tpg->private_data = private_data;
tpg->tt = tvbparse_init(tvb,offset,len,tpg,ignore);
- tpg->stack = ep_stack_new();
- ep_stack_push(tpg->stack,root_tree);
-
+ tpg->stack = wmem_stack_new(wmem_packet_scope());
+ wmem_stack_push(tpg->stack, root_tree);
+
return tpg;
}
#include <epan/proto.h>
#include <epan/tvbuff.h>
#include <epan/tvbparse.h>
+#include <epan/wmem/wmem.h>
#include "ws_symbol_export.h"
typedef struct _tpg_parser_data_t {
- ep_stack_t stack;
+ wmem_stack_t *stack;
tvbparse_t* tt;
void* private_data;
} tpg_parser_data_t;
WS_DLL_PUBLIC guint8* tpg_ipv6(tvbparse_elem_t*);
#define TPG_IPV6(i) tpg_ipv6((i))
-#define TPG_PUSH(tpg,pi,ett) ep_stack_push(((tpg_parser_data_t*)(tpg))->stack,proto_item_add_subtree((pi),(ett)))
-#define TPG_POP(tpg) ep_stack_pop(((tpg_parser_data_t*)(tpg))->stack) ;
+#define TPG_PUSH(tpg,pi,ett) wmem_stack_push(((tpg_parser_data_t*)(tpg))->stack,proto_item_add_subtree((pi),(ett)))
+#define TPG_POP(tpg) wmem_stack_pop(((tpg_parser_data_t*)(tpg))->stack) ;
#define TPG_ADD_STRING(tpg, hfid, elem) proto_tree_add_item(ep_stack_peek(((tpg_parser_data_t*)tpg)->stack), hfid, (elem)->tvb, (elem)->offset, (elem)->len, FALSE)
#define TPG_ADD_BOOLEAN(tpg, hfid, elem) proto_tree_add_boolean(ep_stack_peek(((tpg_parser_data_t*)tpg)->stack), hfid, (elem)->tvb, (elem)->offset, (elem)->len, TRUE)
#include <glib.h>
#include <epan/emem.h>
+#include <epan/wmem/wmem.h>
#include <epan/proto.h>
#include <epan/packet_info.h>
#include <epan/tvbparse.h>
}
static void execute_callbacks(tvbparse_t* tt, tvbparse_elem_t* curr) {
- ep_stack_t stack = ep_stack_new();
+ wmem_stack_t *stack = wmem_stack_new(wmem_packet_scope());
while (curr) {
if(curr->wanted->before) {
}
if(curr->sub) {
- ep_stack_push(stack,curr);
+ wmem_stack_push(stack, curr);
curr = curr->sub;
continue;
} else {
curr = curr->next;
- while( !curr && ep_stack_peek(stack) ) {
- curr = (tvbparse_elem_t *)ep_stack_pop(stack);
+ while( !curr && wmem_stack_count(stack) > 0 ) {
+ curr = (tvbparse_elem_t *)wmem_stack_pop(stack);
#ifdef TVBPARSE_DEBUG
if (TVBPARSE_DEBUG & TVBPARSE_DEBUG_CB) g_warning("execute_callbacks: AFTER: id=%i offset=%i len=%i",curr->id,curr->offset,curr->len);
#endif
};
void tvbparse_tree_add_elem(proto_tree* tree, tvbparse_elem_t* curr) {
- ep_stack_t stack = ep_stack_new();
- struct _elem_tree_stack_frame* frame = (struct _elem_tree_stack_frame *)ep_alloc(sizeof(struct _elem_tree_stack_frame));
+ wmem_stack_t *stack = wmem_stack_new(wmem_packet_scope());
+ struct _elem_tree_stack_frame* frame = wmem_new(wmem_packet_scope(), struct _elem_tree_stack_frame);
proto_item* pi;
frame->tree = tree;
frame->elem = curr;
if(curr->sub) {
frame->elem = curr;
- ep_stack_push(stack,frame);
- frame = (struct _elem_tree_stack_frame *)ep_alloc(sizeof(struct _elem_tree_stack_frame));
+ wmem_stack_push(stack, frame);
+ frame = wmem_new(wmem_packet_scope(), struct _elem_tree_stack_frame);
frame->tree = proto_item_add_subtree(pi,0);
curr = curr->sub;
continue;
curr = curr->next;
- while( !curr && ep_stack_peek(stack) ) {
- frame = (struct _elem_tree_stack_frame *)ep_stack_pop(stack);
+ while( !curr && wmem_stack_count(stack) > 0 ) {
+ frame = (struct _elem_tree_stack_frame *)wmem_stack_pop(stack);
curr = frame->elem->next;
}