On 08/04/10 14:12, Jonas Maebe wrote:
On 08 Apr 2010, at 15:05, C Western wrote:
How about an alternative implementation, without the integer recording
size? I had a quick try at this - the only use of the MemSize routine
in fpc+lazarus seems to be in an optimization in resizing strings. If
this routine is adjusted to cope with MemSize returning 0 to indicate
"not known" then most applications should work.
Having "most" applications work is a great recipe for annoying bug
reports (and annoyed users).
True, except that the current implementation has its own problems, as
discussed. Fortunately I don't see any need to use cmem for my own
application; I think I added it at some point because there was some
indication it was faster, but a quick test now suggests not.
This implementation as the additional advantage that mixing malloc and
free's between C and Pascal then work.
That would indeed be nice, but I don't think it is feasible. Someone who
values such functionality more than a full implementation of the memory
manager can always install their own memory manager.
PS: The CFreeMemSize seems to be incorrectly implemented - it does not
offset the pointer.
It calls CFreeMem, which does perform the adjustment.
Sorry - you are quite right.
Colin
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel