/usr/share/gnudatalanguage/astrolib/delvarx.pro is in gdl-astrolib 2018.02.16+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | ;+
; NAME:
; DELVARX
; PURPOSE:
; Delete up to 10 variables for memory management (can call from routines)
; EXPLANATION:
; Like intrinsic DELVAR function, but can be used from any calling level
;
; Modified in January 2012 to always free memory associated with
; pointers/objects and remove the use of EXECUTE()
; Also look at the Coyote routine UNDEFINE
; http://www.idlcoyote.com/programs/undefine.pro
;
; CALLING SEQUENCE:
; DELVARX, p0, [p1, p2......p9]
;
; INPUTS:
; p0, p1...p9 - variables to delete
;
; OBSOLETE KEYWORD:
; /FREE_MEM - formerly freed memory associated with pointers
; and objects. Since this is now the DELVARX default this
; keyword does nothing.
;
; METHOD:
; Uses HEAP_FREE and PTR_NEW(/NO_COPY) to delete variables and free
; memory
;
; REVISION HISTORY:
; Copied from the Solar library, written by slf, 25-Feb-1993
; Added to Astronomy Library, September 1995
; Modified, 26-Mar-2003, Zarro (EER/GSFC) 26-Mar-2003
; - added FREE_MEM to free pointer/objects
; Modified, 28-Jan-2012, E. Rykoff (SLAC), W. Landsman -
; replace EXECUTE calls with SCOPE_VARFETCH.
;-
PRO delvarx, p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,free_mem = free_mem
npar = N_params() ; Number of parameters
pp = 'p'+strtrim(indgen(npar),1)
for i=0,npar-1 do begin
defined = N_elements( SCOPE_VARFETCH(pp[i],LEVEL=0))
if LOGICAL_TRUE(defined) then $
heap_free, ptr_new( SCOPE_VARFETCH(pp[i],LEVEL=0),/no_copy)
endfor
return
end
|