My porting of TRANSUM from LUA to C continues. I now have a working dissector but I then read README.developer and noted the guidance regarding use of static buffers. I assume this applies to arrays too and so I’m now trying to convert
the statically defined arrays to versions based on dynamic memory allocation. I’ve converted some string buffers and a simple gboolean array without problems. I then tried to convert an array of structures and this caused crashes all over the place.
Before the conversion I had this as a global variable:
PKT_INFO sub_packet[MAX_SUBPKTS_PER_PACKET];
I replaced this with a global variable:
PKT_INFO *sub_packet;
And this in my init function:
sub_packet = (PKT_INFO *)wmem_alloc(wmem_file_scope(), (MAX_SUBPKTS_PER_PACKET * sizeof(PKT_INFO)));
I subsequently use it like this:
sub_packet[i].frame_number = 0;
I seem to be getting memory corruption as a result of this change. Weird things happen, like I lose preference variables.
What am I doing wrong here?
Thanks and regards…Paul