Exemplo n.º 1
0
void
epan_dissect_reset(epan_dissect_t *edt)
{
	/* We have to preserve the pool pointer across the memzeroing */
	wmem_allocator_t *tmp;

	g_assert(edt);

	g_slist_free(edt->pi.proto_data);
	g_slist_free(edt->pi.dependent_frames);

	/* Free the data sources list. */
	free_data_sources(&edt->pi);

	if (edt->tvb) {
		/* Free all tvb's chained from this tvb */
		tvb_free_chain(edt->tvb);
		edt->tvb = NULL;
	}

	if (edt->tree)
		proto_tree_reset(edt->tree);

	tmp = edt->pi.pool;
	wmem_free_all(tmp);

	memset(&edt->pi, 0, sizeof(edt->pi));
	edt->pi.pool = tmp;
}
Exemplo n.º 2
0
void
epan_dissect_reset(epan_dissect_t *edt)
{
	/* epan_dissect_cleanup(edt) without freeing tree */
	g_slist_free(edt->pi.dependent_frames);
	free_data_sources(&edt->pi);
	tvb_free_chain(edt->tvb);

	/* epan_dissect_init(edt, create_proto, visible_proto) */
	edt->pi.dependent_frames = NULL;
	if (edt->tree)
		proto_tree_reset(edt->tree);
}