Changeset: 2675f7ea744e for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2675f7ea744e Modified Files: geom/monetdb5/geom.c Branch: geo Log Message:
int2str removed as it is not needed diffs (209 lines): diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c --- a/geom/monetdb5/geom.c +++ b/geom/monetdb5/geom.c @@ -43,18 +43,6 @@ static int numDigits(unsigned int num) { return digits; } -static char* int2str(unsigned int num) { - int digitsNum = numDigits(num); - str numStr = GDKmalloc(digitsNum+1); - - if(numStr == NULL) - throw(MAL, "geom.int2str", MAL_MALLOC_FAIL); - - sprintf(numStr, "%d", num); - - return numStr; -} - #ifdef HAVE_PROJ /** convert degrees to radians */ @@ -1390,24 +1378,23 @@ str wkbPointOnSurface(wkb** resWKB, wkb* } static str dumpGeometriesSingle(BAT* idBAT, BAT* geomBAT, const GEOSGeometry* geosGeometry, unsigned int *lvl, char* path) { - char* newPath = NULL, *lvlStr; - size_t pathLength; + char* newPath = NULL; + size_t pathLength = strlen(path); wkb* singleWKB = geos2wkb(geosGeometry); //change the path only if it is empty if(strlen(path) == 0) { + int lvlDigitsNum = 0; + (*lvl)++; - - lvlStr = int2str(*lvl); - pathLength = strlen(path)+strlen(lvlStr); - newPath = (char*)GDKmalloc((pathLength+1)*sizeof(char)); + lvlDigitsNum = numDigits(*lvl); + + newPath = (char*)GDKmalloc((pathLength+lvlDigitsNum+1)*sizeof(char)); strcpy(newPath, path); - strcpy(newPath+strlen(path), lvlStr); - - GDKfree(lvlStr); + sprintf(newPath+pathLength, "%d", *lvl); } else { //remove the comma at the end of the path - pathLength = strlen(path)-1; + pathLength--; newPath = (char*)GDKmalloc((pathLength+1)*sizeof(char)); strncpy(newPath, path, pathLength); newPath[pathLength] = '\0'; @@ -1423,27 +1410,27 @@ static str dumpGeometriesGeometry(BAT* i static str dumpGeometriesMulti(BAT* idBAT, BAT* geomBAT, const GEOSGeometry* geosGeometry, char* path) { int i; const GEOSGeometry* multiGeometry = NULL; - str err; unsigned int lvl = 0; - char* lvlStr = NULL; - size_t pathLength = 0; + size_t pathLength = strlen(path); char* newPath = NULL; char* extraStr = ","; + int extraLength = 1; //just a comma int geometriesNum = GEOSGetNumGeometries(geosGeometry); -//fprintf(stderr, "Geometries Num = %d\n", geometriesNum); + for(i=0; i<geometriesNum; i++) { + str err; + int lvlDigitsNum = 0; + multiGeometry = GEOSGetGeometryN(geosGeometry, i); lvl++; - - lvlStr = int2str(lvl); - pathLength = strlen(path)+strlen(extraStr)+strlen(lvlStr); - newPath = (char*)GDKmalloc((pathLength+1)*sizeof(char)); + lvlDigitsNum = numDigits(lvl); + + newPath = (char*)GDKmalloc((pathLength+lvlDigitsNum+extraLength+1)*sizeof(char)); strcpy(newPath, path); - strcpy(newPath+strlen(path), lvlStr); - strcpy(newPath+strlen(path)+strlen(lvlStr), extraStr); - GDKfree(lvlStr); -//fprintf(stderr, "\t%s\n", newPath); + sprintf(newPath+pathLength, "%d", lvl); + strcpy(newPath+pathLength+lvlDigitsNum, extraStr); + //*secondLevel = 0; if((err = dumpGeometriesGeometry(idBAT, geomBAT, multiGeometry, newPath)) != MAL_SUCCEED) { str msg = createException(MAL, "geom.Dump", "%s", err); @@ -1564,22 +1551,21 @@ str wkbDump(int* idBAT_id, int* geomBAT_ } static str dumpPointsPoint(BAT* idBAT, BAT* geomBAT, const GEOSGeometry* geosGeometry, unsigned int *lvl, char* path) { - char* newPath = NULL, *lvlStr; - size_t pathLength; + char *newPath = NULL; + size_t pathLength = strlen(path); wkb* pointWKB = geos2wkb(geosGeometry); + int lvlDigitsNum; (*lvl)++; - - lvlStr = int2str(*lvl); - pathLength = strlen(path)+strlen(lvlStr); - newPath = (char*)GDKmalloc((pathLength+1)*sizeof(char)); + lvlDigitsNum = numDigits(*lvl); + + newPath = (char*)GDKmalloc((pathLength+lvlDigitsNum+1)*sizeof(char)); strcpy(newPath, path); - strcpy(newPath+strlen(path), lvlStr); + sprintf(newPath+pathLength, "%d", *lvl); BUNappend(idBAT,newPath,TRUE); BUNappend(geomBAT,pointWKB,TRUE); GDKfree(pointWKB); - GDKfree(lvlStr); return MAL_SUCCEED; } @@ -1626,9 +1612,12 @@ static str dumpPointsPolygon(BAT* idBAT, int numInteriorRings=0, i=0; str err; char* lvlStr = NULL; - size_t pathLength = 0; + int lvlDigitsNum; + size_t pathLength = strlen(path); char* newPath = NULL; char* extraStr = ","; + int extraLength = 1; + //get the exterior ring of the polygon exteriorRingGeometry = GEOSGetExteriorRing(geosGeometry); @@ -1637,13 +1626,14 @@ static str dumpPointsPolygon(BAT* idBAT, geomBAT = NULL; return createException(MAL, "geom.DumpPoints","GEOSGetExteriorRing failed"); } + (*lvl)++; - lvlStr = int2str(*lvl); - pathLength = strlen(path)+strlen(extraStr)+strlen(lvlStr); - newPath = (char*)GDKmalloc((pathLength+1)*sizeof(char)); + lvlDigitsNum = numDigits(*lvl); + + newPath = (char*)GDKmalloc((pathLength+lvlDigitsNum+extraLength+1)*sizeof(char)); strcpy(newPath, path); - strcpy(newPath+strlen(path), lvlStr); - strcpy(newPath+strlen(path)+strlen(lvlStr), extraStr); + sprintf(newPath+pathLength, "%d", *lvl); + strcpy(newPath+pathLength+lvlDigitsNum, extraStr); GDKfree(lvlStr); @@ -1666,12 +1656,12 @@ static str dumpPointsPolygon(BAT* idBAT, // iterate over the interiorRing and transform each one of them for(i=0; i<numInteriorRings; i++) { (*lvl)++; - lvlStr = int2str(*lvl); - pathLength = strlen(path)+strlen(extraStr)+strlen(lvlStr); - newPath = (char*)GDKmalloc((pathLength+1)*sizeof(char)); + lvlDigitsNum = numDigits(*lvl); + + newPath = (char*)GDKmalloc((pathLength+lvlDigitsNum+extraLength+1)*sizeof(char)); strcpy(newPath, path); - strcpy(newPath+strlen(path), lvlStr); - strcpy(newPath+strlen(path)+strlen(lvlStr), extraStr); + sprintf(newPath+pathLength, "%d", *lvl); + strcpy(newPath+pathLength+lvlDigitsNum, extraStr); GDKfree(lvlStr); if((err = dumpPointsLineString(idBAT, geomBAT, GEOSGetInteriorRingN(geosGeometry, i), newPath)) != MAL_SUCCEED) { @@ -1693,22 +1683,23 @@ static str dumpPointsMultiGeometry(BAT* str err; unsigned int lvl = 0; char* lvlStr = NULL; - size_t pathLength = 0; + int lvlDigitsNum; + size_t pathLength = strlen(path); char* newPath = NULL; char* extraStr = ","; + int extraLength = 1; geometriesNum = GEOSGetNumGeometries(geosGeometry); for(i=0; i<geometriesNum; i++) { multiGeometry = GEOSGetGeometryN(geosGeometry, i); lvl++; - - lvlStr = int2str(lvl); - pathLength = strlen(path)+strlen(extraStr)+strlen(lvlStr); - newPath = (char*)GDKmalloc((pathLength+1)*sizeof(char)); + lvlDigitsNum = numDigits(lvl); + + newPath = (char*)GDKmalloc((pathLength+lvlDigitsNum+extraLength+1)*sizeof(char)); strcpy(newPath, path); - strcpy(newPath+strlen(path), lvlStr); - strcpy(newPath+strlen(path)+strlen(lvlStr), extraStr); + sprintf(newPath+pathLength, "%d", lvl); + strcpy(newPath+pathLength+lvlDigitsNum, extraStr); GDKfree(lvlStr); //*secondLevel = 0; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list