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