Menu

#143 bltGrElem.c compilation problems

open
nobody
None
5
2008-07-11
2008-07-11
No

BLT 3 cvs head
tcl/tk 8.5.3
SPARC Solaris 2.8
Sun C compiler

When I attempt to build the original code, I get an error message about line 199 of the header file bltGrElem.h . The error indicates that unnamed unions are not a good thing.

So, I made this change to see if I could get farther.

$ gdiff -U1 blt/src/bltGrElem.h.orig blt/src/bltGrElem.h
--- blt/src/bltGrElem.h.orig Fri Jul 11 10:45:24 2008
+++ blt/src/bltGrElem.h Fri Jul 11 10:46:09 2008
@@ -195,6 +195,6 @@
*/
- union {
+ union DVInfo {
DataTableInfo tableInfo;
VectorInfo vectorInfo;
- };
+ } DVInfo ;

Then I got an error in bltGrElem.c, because the code there is referencing the union members, without the newly provided union name. So I made this change to try and get farther:

--- blt/src/bltGrElem.c.orig Fri Jul 11 10:48:18 2008
+++ blt/src/bltGrElem.c Fri Jul 11 10:49:51 2008
@@ -214,5 +214,5 @@
{
- Blt_SetVectorChangedProc(evPtr->vectorInfo.id, NULL, NULL);
- if (evPtr->vectorInfo.id != NULL) {
- Blt_FreeVectorId(evPtr->vectorInfo.id);
+ Blt_SetVectorChangedProc(evPtr->DVInfo.vectorInfo.id, NULL, NULL);
+ if (evPtr->DVInfo.vectorInfo.id != NULL) {
+ Blt_FreeVectorId(evPtr->DVInfo.vectorInfo.id);
}
@@ -272,3 +272,3 @@

- Blt_GetVectorById(interp, evPtr->vectorInfo.id, &vector);
+ Blt_GetVectorById(interp, evPtr->DVInfo.vectorInfo.id, &vector);
if (FetchVectorValues(NULL, evPtr, vector) != TCL_OK) {
@@ -300,4 +300,4 @@
}
- evPtr->vectorInfo.id = Blt_AllocVectorId(interp, vecName);
- if (Blt_GetVectorById(interp, evPtr->vectorInfo.id, &vector) != TCL_OK) {
+ evPtr->DVInfo.vectorInfo.id = Blt_AllocVectorId(interp, vecName);
+ if (Blt_GetVectorById(interp, evPtr->DVInfo.vectorInfo.id, &vector) != TCL_
OK) {
return TCL_ERROR;
@@ -307,3 +307,3 @@
}
- Blt_SetVectorChangedProc(evPtr->vectorInfo.id, VectorChangedProc, evPtr);
+ Blt_SetVectorChangedProc(evPtr->DVInfo.vectorInfo.id, VectorChangedProc, ev
Ptr);
evPtr->type = ELEM_SOURCE_VECTOR;
@@ -325,3 +325,3 @@

- table = evPtr->tableInfo.table;
+ table = evPtr->DVInfo.tableInfo.table;
array = Blt_Malloc(sizeof(double) * Blt_Dt_NumRows(table));
@@ -364,9 +364,9 @@

- if (evPtr->tableInfo.trace != NULL) {
- Blt_Dt_DeleteTrace(evPtr->tableInfo.trace);
+ if (evPtr->DVInfo.tableInfo.trace != NULL) {
+ Blt_Dt_DeleteTrace(evPtr->DVInfo.tableInfo.trace);
}
- if (evPtr->tableInfo.notifier != NULL) {
- Blt_Dt_DeleteNotifier(evPtr->tableInfo.notifier);
+ if (evPtr->DVInfo.tableInfo.notifier != NULL) {
+ Blt_Dt_DeleteNotifier(evPtr->DVInfo.tableInfo.notifier);
}
- tableName = Blt_Dt_TableName(evPtr->tableInfo.table);
+ tableName = Blt_Dt_TableName(evPtr->DVInfo.tableInfo.table);
dataPtr = GetGraphInterpData(evPtr->elemPtr->object.graphPtr->interp);
@@ -379,4 +379,4 @@
if (clientPtr->refCount == 0) {
- if (evPtr->tableInfo.table != NULL) {
- Blt_Dt_Close(evPtr->tableInfo.table);
+ if (evPtr->DVInfo.tableInfo.table != NULL) {
+ Blt_Dt_Close(evPtr->DVInfo.tableInfo.table);
}
@@ -446,3 +446,3 @@

- assert((Blt_Dt_Column)eventPtr->column == evPtr->tableInfo.column);
+ assert((Blt_Dt_Column)eventPtr->column == evPtr->DVInfo.tableInfo.column);

@@ -479,4 +479,4 @@
}
- memset(&evPtr->tableInfo, sizeof(DataTableInfo), 0);
- infoPtr = &evPtr->tableInfo;
+ memset(&evPtr->DVInfo.tableInfo, sizeof(DataTableInfo), 0);
+ infoPtr = &evPtr->DVInfo.tableInfo;

@@ -776,3 +776,3 @@

- vecName = Blt_NameOfVectorId(evPtr->vectorInfo.id);
+ vecName = Blt_NameOfVectorId(evPtr->DVInfo.vectorInfo.id);
return Tcl_NewStringObj(vecName, -1);
@@ -786,3 +786,3 @@
listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
- tableName = Blt_Dt_TableName(evPtr->tableInfo.table);

+ tableName = Blt_Dt_TableName(evPtr->DVInfo.tableInfo.table);
Tcl_ListObjAppendElement(interp, listObjPtr,
@@ -790,3 +790,3 @@

- i = Blt_Dt_ColumnIndex(evPtr->tableInfo.column);
+ i = Blt_Dt_ColumnIndex(evPtr->DVInfo.tableInfo.column);
Tcl_ListObjAppendElement(interp, listObjPtr, Tcl_NewLongObj(i));

After these changes, this module did compile.

I still am seeing a LOT of other issues - but just wanted to report this one in this report.

Discussion


Log in to post a comment.