diff options
author | joye <joye> | 2014-07-08 17:23:53 (GMT) |
---|---|---|
committer | joye <joye> | 2014-07-08 17:23:53 (GMT) |
commit | c8e9984dbc4a3ceb25ff8903a9d8faf547dd400a (patch) | |
tree | 76818965620989931845e016554fb6b69b2ae482 | |
parent | ce9561bee4d1cd04214541cce65c3a93fe605ad5 (diff) | |
download | blt-c8e9984dbc4a3ceb25ff8903a9d8faf547dd400a.zip blt-c8e9984dbc4a3ceb25ff8903a9d8faf547dd400a.tar.gz blt-c8e9984dbc4a3ceb25ff8903a9d8faf547dd400a.tar.bz2 |
*** empty log message ***
-rw-r--r-- | src/bltVector.C | 77 | ||||
-rw-r--r-- | src/bltVector.h | 63 |
2 files changed, 30 insertions, 110 deletions
diff --git a/src/bltVector.C b/src/bltVector.C index e5c7508..84245a6 100644 --- a/src/bltVector.C +++ b/src/bltVector.C @@ -1874,38 +1874,13 @@ Blt_CreateVector2( return TCL_OK; } -int -Blt_CreateVector( - Tcl_Interp* interp, - const char *name, - int size, - Blt_Vector **vecPtrPtr) +int Blt_CreateVector(Tcl_Interp* interp, const char *name, int size, + Blt_Vector **vecPtrPtr) { return Blt_CreateVector2(interp, name, name, name, size, vecPtrPtr); } -/* - *--------------------------------------------------------------------------- - * - * Blt_DeleteVector -- - * - * Deletes the vector of the given name. All clients with designated - * callback routines will be notified. - * - * Results: - * A standard TCL result. If no vector exists by that name, TCL_ERROR is - * returned. Otherwise TCL_OK is returned and vector is deleted. - * - * Side Effects: - * Memory will be released for the new vector. Both the TCL command and - * array variable will be deleted. All clients which set call back - * procedures will be notified. - * - *--------------------------------------------------------------------------- - */ -/*LINTLIBRARY*/ -int -Blt_DeleteVector(Blt_Vector *vecPtr) +int Blt_DeleteVector(Blt_Vector *vecPtr) { Vector *vPtr = (Vector *)vecPtr; @@ -1913,48 +1888,20 @@ Blt_DeleteVector(Blt_Vector *vecPtr) return TCL_OK; } -/* - *--------------------------------------------------------------------------- - * - * Blt_DeleteVectorByName -- - * - * Deletes the vector of the given name. All clients with designated - * callback routines will be notified. - * - * Results: - * A standard TCL result. If no vector exists by that name, TCL_ERROR is - * returned. Otherwise TCL_OK is returned and vector is deleted. - * - * Side Effects: - * Memory will be released for the new vector. Both the TCL command and - * array variable will be deleted. All clients which set call back - * procedures will be notified. - * - *--------------------------------------------------------------------------- - */ -/*LINTLIBRARY*/ -int -Blt_DeleteVectorByName(Tcl_Interp* interp, const char *name) +int Blt_DeleteVectorByName(Tcl_Interp* interp, const char *name) { - VectorInterpData *dataPtr; /* Interpreter-specific data. */ + // If the vector name was passed via a read-only string (e.g. "x"), the + // Blt_Vec_ParseElement routine will segfault when it tries to write into + // the string. Therefore make a writable copy and free it when we're done. + char* nameCopy = Blt_Strdup(name); + VectorInterpData *dataPtr = Blt_Vec_GetInterpData(interp); Vector *vPtr; - char *nameCopy; - int result; - - /* - * If the vector name was passed via a read-only string (e.g. "x"), the - * Blt_Vec_ParseElement routine will segfault when it tries to write into - * the string. Therefore make a writable copy and free it when we're - * done. - */ - nameCopy = Blt_Strdup(name); - dataPtr = Blt_Vec_GetInterpData(interp); - result = Blt_Vec_LookupName(dataPtr, nameCopy, &vPtr); + int result = Blt_Vec_LookupName(dataPtr, nameCopy, &vPtr); free(nameCopy); - if (result != TCL_OK) { + if (result != TCL_OK) return TCL_ERROR; - } + Blt_Vec_Free(vPtr); return TCL_OK; } diff --git a/src/bltVector.h b/src/bltVector.h index f1daa78..8a73a2a 100644 --- a/src/bltVector.h +++ b/src/bltVector.h @@ -87,56 +87,29 @@ typedef enum { #define Blt_VecSize(v) ((v)->arraySize) #define Blt_VecDirty(v) ((v)->dirty) -extern double Blt_VecMin(Blt_Vector *vPtr); -extern double Blt_VecMax(Blt_Vector *vPtr); - -extern Blt_VectorId Blt_AllocVectorId(Tcl_Interp* interp, - const char *vecName); - -extern void Blt_SetVectorChangedProc(Blt_VectorId clientId, - Blt_VectorChangedProc *proc, ClientData clientData); - -extern void Blt_FreeVectorId(Blt_VectorId clientId); - -extern int Blt_GetVectorById(Tcl_Interp* interp, Blt_VectorId clientId, - Blt_Vector **vecPtrPtr); - -extern const char *Blt_NameOfVectorId(Blt_VectorId clientId); - -extern const char *Blt_NameOfVector(Blt_Vector *vecPtr); - -extern int Blt_VectorNotifyPending(Blt_VectorId clientId); - -extern int Blt_CreateVector(Tcl_Interp* interp, const char *vecName, - int size, Blt_Vector ** vecPtrPtr); - -extern int Blt_CreateVector2(Tcl_Interp* interp, const char *vecName, - const char *cmdName, const char *varName, int initialSize, - Blt_Vector **vecPtrPtr); - extern "C" { + int Blt_CreateVector(Tcl_Interp* interp, const char *vecName, int size, Blt_Vector ** vecPtrPtr); + int Blt_DeleteVectorByName(Tcl_Interp* interp, const char *vecName); + int Blt_DeleteVector(Blt_Vector *vecPtr); int Blt_GetVector(Tcl_Interp* interp, const char *vecName, Blt_Vector **vecPtrPtr); int Blt_ResetVector(Blt_Vector *vecPtr, double *dataArr, int n, int arraySize, Tcl_FreeProc *freeProc); + int Blt_ResizeVector(Blt_Vector *vecPtr, int n); + int Blt_VectorExists(Tcl_Interp* interp, const char *vecName); + Blt_VectorId Blt_AllocVectorId(Tcl_Interp* interp, const char *vecName); + int Blt_GetVectorById(Tcl_Interp* interp, Blt_VectorId clientId, Blt_Vector **vecPtrPtr); + void Blt_SetVectorChangedProc(Blt_VectorId clientId, Blt_VectorChangedProc *proc, ClientData clientData); + void Blt_FreeVectorId(Blt_VectorId clientId); + const char *Blt_NameOfVectorId(Blt_VectorId clientId); + void Blt_InstallIndexProc(Tcl_Interp* interp, const char *indexName, Blt_VectorIndexProc * procPtr); } -extern int Blt_GetVectorFromObj(Tcl_Interp* interp, Tcl_Obj *objPtr, - Blt_Vector **vecPtrPtr); - -extern int Blt_VectorExists(Tcl_Interp* interp, const char *vecName); - - -extern int Blt_ResizeVector(Blt_Vector *vecPtr, int n); - -extern int Blt_DeleteVectorByName(Tcl_Interp* interp, const char *vecName); - -extern int Blt_DeleteVector(Blt_Vector *vecPtr); - -extern int Blt_ExprVector(Tcl_Interp* interp, char *expr, - Blt_Vector *vecPtr); - -extern void Blt_InstallIndexProc(Tcl_Interp* interp, const char *indexName, - Blt_VectorIndexProc * procPtr); - +extern double Blt_VecMin(Blt_Vector *vPtr); +extern double Blt_VecMax(Blt_Vector *vPtr); +extern const char *Blt_NameOfVector(Blt_Vector *vecPtr); +extern int Blt_VectorNotifyPending(Blt_VectorId clientId); +extern int Blt_CreateVector2(Tcl_Interp* interp, const char *vecName, const char *cmdName, const char *varName, int initialSize, Blt_Vector **vecPtrPtr); +extern int Blt_GetVectorFromObj(Tcl_Interp* interp, Tcl_Obj *objPtr, Blt_Vector **vecPtrPtr); +extern int Blt_ExprVector(Tcl_Interp* interp, char *expr, Blt_Vector *vecPtr); extern int Blt_VectorExists2(Tcl_Interp* interp, const char *vecName); #endif /* _BLT_VECTOR_H */ |