Dangling pointers
Dangling pointers are easily created when using the TextIO package, because WRITELINE de-allocates the access type (pointer) that is passed to it. Following are examples of good and bad VHDL coding styles:
Bad VHDL (because L1 and L2 both point to the same buffer):
READLINE (infile, L1); -- Read and allocate buffer L2 := L1; -- Copy pointers WRITELINE (outfile, L1); -- Deallocate bufferGood VHDL (because L1 and L2 point to different buffers):
READLINE (infile, L1); -- Read and allocate buffer L2 := new string'(L1.all); -- Copy contents WRITELINE (outfile, L1); -- Deallocate buffer
Model Technology Incorporated Voice: (503) 641-1340 Fax: (503)526-5410 www.model.com sales@model.com |