Optimize Packet Ext data freeing

Move the logic of PacketFreeExtData into a macro 'PACKET_FREE_EXTDATA'.
It was called for each packet.
pull/1105/merge
Victor Julien 11 years ago
parent 80adc40f68
commit c20bd3bcb2

@ -85,17 +85,6 @@ int DecodeTunnel(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p,
return TM_ECODE_OK;
}
void PacketFreeExtData(Packet *p)
{
/* if p uses extended data, free them */
if (p->ext_pkt) {
if (!(p->flags & PKT_ZERO_COPY)) {
SCFree(p->ext_pkt);
}
p->ext_pkt = NULL;
}
}
/**
* \brief Return a malloced packet.
*/

@ -623,7 +623,15 @@ typedef struct DecodeThreadVars_
(p)->level4_comp_csum = -1; \
} while (0)
void PacketFreeExtData(Packet *p);
/* if p uses extended data, free them */
#define PACKET_FREE_EXTDATA(p) do { \
if ((p)->ext_pkt) { \
if (!((p)->flags & PKT_ZERO_COPY)) { \
SCFree((p)->ext_pkt); \
} \
(p)->ext_pkt = NULL; \
} \
} while(0)
/**
* \brief Initialize a packet structure for use.
@ -664,7 +672,7 @@ void PacketFreeExtData(Packet *p);
(p)->dp = 0; \
(p)->proto = 0; \
(p)->recursion_level = 0; \
PacketFreeExtData(p); \
PACKET_FREE_EXTDATA((p)); \
(p)->flags = (p)->flags & PKT_ALLOC; \
(p)->flowflags = 0; \
(p)->pkt_src = 0; \
@ -736,7 +744,7 @@ void PacketFreeExtData(Packet *p);
if ((p)->pktvar != NULL) { \
PktVarFree((p)->pktvar); \
} \
PacketFreeExtData(p); \
PACKET_FREE_EXTDATA((p)); \
SCMutexDestroy(&(p)->tunnel_mutex); \
AppLayerDecoderEventsFreeEvents(&(p)->app_layer_events); \
PACKET_PROFILING_RESET((p)); \

Loading…
Cancel
Save