Replace all(?) remaining ep_stack occurences with wmem stacks.

svn path=/trunk/; revision=54435
This commit is contained in:
Evan Huus 2013-12-24 03:29:14 +00:00
parent 0ea5c80e1a
commit 7151a4d99e
3 changed files with 20 additions and 18 deletions

View File

@ -28,7 +28,7 @@
#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_) {
@ -47,13 +47,13 @@ extern tpg_parser_data_t* tpg_start(proto_tree* root_tree,
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;
}

View File

@ -32,10 +32,11 @@
#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;
@ -67,8 +68,8 @@ WS_DLL_PUBLIC guint32 tpg_ipv4(tvbparse_elem_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)

View File

@ -30,6 +30,7 @@
#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>
@ -1250,7 +1251,7 @@ guint tvbparse_curr_offset(tvbparse_t* tt) {
}
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) {
@ -1261,7 +1262,7 @@ static void execute_callbacks(tvbparse_t* tt, tvbparse_elem_t* curr) {
}
if(curr->sub) {
ep_stack_push(stack,curr);
wmem_stack_push(stack, curr);
curr = curr->sub;
continue;
} else {
@ -1273,8 +1274,8 @@ static void execute_callbacks(tvbparse_t* tt, tvbparse_elem_t* curr) {
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
@ -1391,8 +1392,8 @@ struct _elem_tree_stack_frame {
};
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;
@ -1402,8 +1403,8 @@ void tvbparse_tree_add_elem(proto_tree* tree, tvbparse_elem_t* 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;
@ -1411,8 +1412,8 @@ void tvbparse_tree_add_elem(proto_tree* tree, tvbparse_elem_t* curr) {
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;
}