I said:
> what we really need is: DynamiteRemoveItems
This mod to Alain's function "seems" to work:
'----------
local mode
local fn DynamicRemoveItems( @dyn as ptr, firstItem as long, numItems
as long )
'~'1
dim as long itemCount, itemSize
if ( dyn == _nil ) or ( firstItem < 0 ) or ( numItems < 1 ) then exit fn
itemSize = ( fn malloc_size( dyn.AutoXREFPtr& ) \\ dyn.AutoXREFMax& )
if ( itemSize == 0 ) then exit fn
itemCount = dyn.autoXREFCurr&
long if ( firstItem < itemCount )
if ( ( firstItem + numItems ) > itemCount ) then numItems = itemCount
- firstItem
BlockMove( [dyn.AutoXREFHndl&] + ( itemSize * ( firstItem +
numItems ) ), [dyn.AutoXREFHndl&] + ( itemSize * firstItem ),
( itemCount - firstItem ) * itemSize )
dyn.autoXREFCurr& = dyn.autoXREFCurr& - numItems
dyn.AutoXREFMax& = dyn.AutoXREFCurr&
end if
end fn
'----------
No apologies for missing OS 9 code.
Bernie