aboutsummaryrefslogtreecommitdiff
path: root/noao/astutil/pdm/pdmclose.x
blob: b7e4541edd62ed5b0cad71f0ddacffcc03e97211 (plain) (blame)
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
52
53
54
55
56
57
58
59
60
61
62
63
include <mach.h>
include "pdm.h"

# PDM_CLOSE -- Close a PDM data structure.

procedure pdm_close (pdmp, interactive)

pointer	pdmp			# PDM structure pointer
bool	interactive		# interactive flag

begin
	# Close icfit pointers, curfit pointers, and graphics pointers,
	# and the ranges pointer.

	if (PDM_ICD(pdmp) != NULL)
	    call ic_closed (PDM_ICD(pdmp))
	if (PDM_ICP(pdmp) != NULL)
	    call ic_closed (PDM_ICP(pdmp))
	if (PDM_CVD(pdmp) != NULL)
	    call dcvfree (PDM_CVD(pdmp))
	if (PDM_CVP(pdmp) != NULL)
	    call dcvfree (PDM_CVP(pdmp))
	if (PDM_GT(pdmp) != NULL)
	    call gt_free (PDM_GT(pdmp))
	if (PDM_GP(pdmp) != NULL)
	    call gclose (PDM_GP(pdmp))
	if (PDM_RG(pdmp) != NULL)
	    call rg_free (PDM_RG(pdmp))
	if (PDM_LFD(pdmp) != NULL)
	    call close (PDM_LFD(pdmp))
	if (!interactive)
	    if (PDM_PFD(pdmp) != NULL)
		call close (PDM_PFD(pdmp))

	# Free the data vectors.
	if (PDM_XP(pdmp) != NULL)
	    call mfree (PDM_XP(pdmp), TY_DOUBLE)
	if (PDM_ODYP(pdmp) != NULL)
	    call mfree (PDM_ODYP(pdmp), TY_DOUBLE)
	if (PDM_DYP(pdmp) != NULL)
	    call mfree (PDM_DYP(pdmp), TY_DOUBLE)
	if (PDM_ERRP(pdmp) != NULL)
	    call mfree (PDM_ERRP(pdmp), TY_REAL)
	if (PDM_INUSEP(pdmp) != NULL)
	    call mfree (PDM_INUSEP(pdmp), TY_INT)
	if (PDM_XTHP(pdmp) != NULL)
	    call mfree (PDM_XTHP(pdmp), TY_DOUBLE)
	if (PDM_YTHP(pdmp) != NULL)
	    call mfree (PDM_YTHP(pdmp), TY_DOUBLE)
	if (PDM_XPHP(pdmp) != NULL)
	    call mfree (PDM_XPHP(pdmp), TY_DOUBLE)
	if (PDM_YPHP(pdmp) != NULL)
	    call mfree (PDM_YPHP(pdmp), TY_DOUBLE)
	if (PDM_PHERRP(pdmp) != NULL)
	    call mfree (PDM_PHERRP(pdmp), TY_REAL)
	if (PDM_SORTP(pdmp) != NULL)
	    call mfree (PDM_SORTP(pdmp), TY_INT)
	if (PDM_SAMPLEP(pdmp) != NULL)
	    call mfree (PDM_SAMPLEP(pdmp), TY_CHAR)

	# Free the pdm data structure.
	call mfree (pdmp, TY_STRUCT)
end