Hi, I enabled heaptrc and it reported on block of memory not being freed. I tracked it down to the following method in my code. I have tried everything I can think of, but the memory leak still persists. Could anybody help me please.
A quick description of what this code does. I'm reading content out of a file. The content is an array of offsets into the file where data is located. * ntoc = number of entries in the array. Each entry is a LongWord (or Int32 in the code below) * tocarray is my local array that gets populated with information from the file, using the Move() procedure. * tocoffsetsstart is the starting offset of the TOC array in the file. * I then simply look through the number of entries in the array - position p to file offset as specified by each entry of the array - extract my data, and continue with the next item in the array At the end I try to free / dispose of the memory used by my local array: tocarray ...but whatever I try, heaptrc keeps telling me I have a memory leak in this code. -------------------------------------- procedure THelpFile.ReadContents; var Topic: TTopic; EntryIndex: longint; pEntry: pTTOCEntryStart; tocarray: array of Int32; p: PByte; begin _Topics.Capacity := _Header.ntoc; SetLength(tocarray, _Header.ntoc); p := _Data + _Header.tocoffsetsstart; Move(p, tocarray, SizeOf(tocarray)); for EntryIndex := 0 to _Header.ntoc-1 do begin pEntry := _Data + tocarray[EntryIndex]; Topic := TTopic.Create(_Data, _Header, _Dictionary, pEntry ); Topic.HelpFile := Self; Topic.Index := EntryIndex; _Topics.Add(Topic); end; // Finalize(tocarray); <--- doesn't work Finalize(tocarray, _header.ntoc); <--- doesn't work tocarray := nil; <--- doesn't work end; -------------------------------------- -- Regards, - Graeme - _______________________________________________ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal