`
Clarion in general: New and Dispose 2005-01-07 -- Robert Peros Newsgroups: softvelocity.clarion.language > Several months ago, maybe in 2003, there was an interesting discussion > about how to deal with situations where you need to NEW a variable in > a method but you can't dispose of it easily, such as: > > MyMethod Procedure(String pS) > NewS &String > Code > NewS &= NEW STRING(Size(pS)*2) > NewS = pS & pS > Return(NewS) > > You can't dispose of this and this would cause memory leak (as far as > I know) Some people posted a really nifty way to call the method back > to dispose of the variable but I have lost this and don't remember > exactly how it was done. Anyone recall this? No,but if I correct understand, look at the ABFILE.clw(again :-)) ! Choose the buffer size for a given string ! Must be at least one byte but other than that may clip ! Then allocate string and copy in value DupString PROCEDURE(STRING St)!,*STRING SizeIs SIGNED,AUTO NS &STRING,AUTO CODE SizeIs = LEN(CLIP(St)) NS &= NEW STRING (CHOOSE(SizeIs = 0,1,SizeIs)) NS = St RETURN NS Return value is ref. to STRING and you have responsibility for DISPOSE time. R. Printed November 21, 2024, 7:05 am This article has been viewed/printed 35213 times. Google search has resulted in 4 hits on this article since January 25, 2004. |