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