/* basics.C */
#include "../ZV.h"
/*--------------------------------------------------------------------*/
/*
-----------------------
constructor method
created -- 98jan22, cca
-----------------------
*/
ZV *
ZV_new (
void
) {
ZV *zv ;
ALLOCATE(zv, struct _ZV, 1) ;
ZV_setDefaultFields(zv) ;
return(zv) ; }
/*--------------------------------------------------------------------*/
/*
-----------------------
set the default fields
created -- 98jan22, cca
-----------------------
*/
void
ZV_setDefaultFields (
ZV *zv
) {
if ( zv == NULL ) {
fprintf(stderr, "\n fatal error in ZV_setDefaultFields(%p)"
"\n bad input\n", zv) ;
exit(-1) ;
}
zv->size = 0 ;
zv->maxsize = 0 ;
zv->owned = 0 ;
zv->vec = NULL ;
return ; }
/*--------------------------------------------------------------------*/
/*
-----------------------
clear the data fields
created -- 98jan22, cca
-----------------------
*/
void
ZV_clearData (
ZV *zv
) {
if ( zv == NULL ) {
fprintf(stderr, "\n fatal error in ZV_clearData(%p)"
"\n bad input\n", zv) ;
exit(-1) ;
}
if ( zv->vec != NULL && zv->owned == 1 ) {
DVfree(zv->vec) ;
}
ZV_setDefaultFields(zv) ;
return ; }
/*--------------------------------------------------------------------*/
/*
-----------------------
destructor
created -- 98jan22, cca
-----------------------
*/
void
ZV_free (
ZV *zv
) {
if ( zv == NULL ) {
fprintf(stderr, "\n fatal error in ZV_free(%p)"
"\n bad input\n", zv) ;
exit(-1) ;
}
ZV_clearData(zv) ;
FREE(zv) ;
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1