On 11/09/17 19:45, Sven Barth via fpc-pascal wrote:

I've rechecked and the thing is as follows:- the IncLocked call happens each time you assign 
a dynamic array toanother dynamic array variable or a by-value parameter (this alsoincludes 
being part of a record, but not a class instance or TP-styleobject)- the DecLocked call 
happens each time the array is cleared (as long asthe reference count is > 0 this only 
means a decrement of the count)which happens if you assign Nil, assign a different array 
(thedestination array is "cleared") or if the array variable goes out of scope
The two routines are also used in context of Ansi- and UnicodeStringvariables 
as well as reference counted interfaces (aka COM-styleinterfaces).
In contrast to what I wrote earlier the compiler does however not ensurea 
unique array if you only change an element, so given the followingexample:

In the general case, will these force a membar or a cache flush?

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to