From c8e9984dbc4a3ceb25ff8903a9d8faf547dd400a Mon Sep 17 00:00:00 2001 From: joye Date: Tue, 8 Jul 2014 17:23:53 +0000 Subject: *** empty log message *** --- src/bltVector.C | 77 +++++++++------------------------------------------------ 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 */ -- cgit v0.12