1 /*  basics.C  */
2 
3 #include "../ZV.h"
4 
5 /*--------------------------------------------------------------------*/
6 /*
7    -----------------------
8    constructor method
9 
10    created -- 98jan22, cca
11    -----------------------
12 */
13 ZV *
ZV_new(void)14 ZV_new (
15    void
16 ) {
17 ZV   *zv ;
18 
19 ALLOCATE(zv, struct _ZV, 1) ;
20 
21 ZV_setDefaultFields(zv) ;
22 
23 return(zv) ; }
24 
25 /*--------------------------------------------------------------------*/
26 /*
27    -----------------------
28    set the default fields
29 
30    created -- 98jan22, cca
31    -----------------------
32 */
33 void
ZV_setDefaultFields(ZV * zv)34 ZV_setDefaultFields (
35    ZV   *zv
36 ) {
37 if ( zv == NULL ) {
38    fprintf(stderr, "\n fatal error in ZV_setDefaultFields(%p)"
39            "\n bad input\n", zv) ;
40    exit(-1) ;
41 }
42 zv->size    =   0  ;
43 zv->maxsize =   0  ;
44 zv->owned   =   0  ;
45 zv->vec     = NULL ;
46 
47 return ; }
48 
49 /*--------------------------------------------------------------------*/
50 /*
51    -----------------------
52    clear the data fields
53 
54    created -- 98jan22, cca
55    -----------------------
56 */
57 void
ZV_clearData(ZV * zv)58 ZV_clearData (
59    ZV   *zv
60 ) {
61 if ( zv == NULL ) {
62    fprintf(stderr, "\n fatal error in ZV_clearData(%p)"
63            "\n bad input\n", zv) ;
64    exit(-1) ;
65 }
66 if ( zv->vec != NULL && zv->owned == 1 ) {
67    DVfree(zv->vec) ;
68 }
69 ZV_setDefaultFields(zv) ;
70 
71 return ; }
72 
73 /*--------------------------------------------------------------------*/
74 /*
75    -----------------------
76    destructor
77 
78    created -- 98jan22, cca
79    -----------------------
80 */
81 void
ZV_free(ZV * zv)82 ZV_free (
83    ZV   *zv
84 ) {
85 if ( zv == NULL ) {
86    fprintf(stderr, "\n fatal error in ZV_free(%p)"
87            "\n bad input\n", zv) ;
88    exit(-1) ;
89 }
90 ZV_clearData(zv) ;
91 FREE(zv) ;
92 
93 return ; }
94 
95 /*--------------------------------------------------------------------*/
96