Changeset: 47257dd18705 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=47257dd18705
Modified Files:
        geom/monetdb5/geom.c
Branch: geo
Log Message:

numDigits removed. Number of digits obtained from return value of sprintf


diffs (158 lines):

diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -32,17 +32,6 @@ const double pi=3.14159265358979323846;
 
 /* the first argument in the functions is the return variable */
 
-static int numDigits(unsigned int num) {
-       int digits =1;
-
-       while(num > 9) {
-               num/=10;
-               digits++;
-       }
-
-       return digits;
-}
-
 #ifdef HAVE_PROJ
 
 /** convert degrees to radians */
@@ -1384,10 +1373,9 @@ static str dumpGeometriesSingle(BAT* idB
 
        //change the path only if it is empty
        if(strlen(path) == 0) {
-               int lvlDigitsNum = 0;
+               int lvlDigitsNum = 10; //MAX_UNIT = 4,294,967,295
 
                (*lvl)++;
-               lvlDigitsNum = numDigits(*lvl);
 
                newPath = 
(char*)GDKmalloc((pathLength+lvlDigitsNum+1)*sizeof(char));
                strcpy(newPath, path);
@@ -1420,15 +1408,14 @@ static str dumpGeometriesMulti(BAT* idBA
 
        for(i=0; i<geometriesNum; i++) {
                str err;
-               int lvlDigitsNum = 0;
+               int lvlDigitsNum = 10; //MAX_UNIT = 4,294,967,295
 
                multiGeometry = GEOSGetGeometryN(geosGeometry, i);
                lvl++;
-               lvlDigitsNum = numDigits(lvl);          
 
                newPath = 
(char*)GDKmalloc((pathLength+lvlDigitsNum+extraLength+1)*sizeof(char));
                strcpy(newPath, path);
-               sprintf(newPath+pathLength, "%d", lvl);
+               lvlDigitsNum = sprintf(newPath+pathLength, "%d", lvl);
                strcpy(newPath+pathLength+lvlDigitsNum, extraStr);
 
                //*secondLevel = 0;
@@ -1554,10 +1541,9 @@ static str dumpPointsPoint(BAT* idBAT, B
        char *newPath = NULL;
        size_t pathLength = strlen(path);
        wkb* pointWKB = geos2wkb(geosGeometry); 
-       int lvlDigitsNum;
+       int lvlDigitsNum = 10; //MAX_UNIT = 4,294,967,295
 
        (*lvl)++;
-       lvlDigitsNum = numDigits(*lvl);
 
        newPath = (char*)GDKmalloc((pathLength+lvlDigitsNum+1)*sizeof(char));
        strcpy(newPath, path);
@@ -1612,7 +1598,7 @@ static str dumpPointsPolygon(BAT* idBAT,
        int numInteriorRings=0, i=0;
        str err;
        char* lvlStr = NULL;
-       int lvlDigitsNum;
+       int lvlDigitsNum = 10; //MAX_UNIT = 4,294,967,295
        size_t pathLength = strlen(path);
        char* newPath = NULL;
        char* extraStr = ",";
@@ -1628,11 +1614,10 @@ static str dumpPointsPolygon(BAT* idBAT,
        }
 
        (*lvl)++;
-       lvlDigitsNum = numDigits(*lvl);
 
        newPath = 
(char*)GDKmalloc((pathLength+lvlDigitsNum+extraLength+1)*sizeof(char));
        strcpy(newPath, path);
-       sprintf(newPath+pathLength, "%d", *lvl);
+       lvlDigitsNum = sprintf(newPath+pathLength, "%d", *lvl);
        strcpy(newPath+pathLength+lvlDigitsNum, extraStr);
        GDKfree(lvlStr);
 
@@ -1656,11 +1641,12 @@ static str dumpPointsPolygon(BAT* idBAT,
        // iterate over the interiorRing and transform each one of them
        for(i=0; i<numInteriorRings; i++) {
                (*lvl)++;
-               lvlDigitsNum = numDigits(*lvl);
+               lvlDigitsNum = 10; //MAX_UNIT = 4,294,967,295
+
        
                newPath = 
(char*)GDKmalloc((pathLength+lvlDigitsNum+extraLength+1)*sizeof(char));
                strcpy(newPath, path);
-               sprintf(newPath+pathLength, "%d", *lvl);
+               lvlDigitsNum = sprintf(newPath+pathLength, "%d", *lvl);
                strcpy(newPath+pathLength+lvlDigitsNum, extraStr);
                GDKfree(lvlStr);
 
@@ -1683,7 +1669,6 @@ static str dumpPointsMultiGeometry(BAT* 
        str err;
        unsigned int lvl = 0;
        char* lvlStr = NULL;
-       int lvlDigitsNum;
        size_t pathLength = strlen(path);
        char* newPath = NULL;
        char* extraStr = ",";
@@ -1692,13 +1677,14 @@ static str dumpPointsMultiGeometry(BAT* 
        geometriesNum = GEOSGetNumGeometries(geosGeometry);
 
        for(i=0; i<geometriesNum; i++) {
+               int lvlDigitsNum = 10; //MAX_UNIT = 4,294,967,295
+
                multiGeometry = GEOSGetGeometryN(geosGeometry, i);
                lvl++;
-               lvlDigitsNum = numDigits(lvl);  
        
                newPath = 
(char*)GDKmalloc((pathLength+lvlDigitsNum+extraLength+1)*sizeof(char));
                strcpy(newPath, path);
-               sprintf(newPath+pathLength, "%d", lvl);
+               lvlDigitsNum = sprintf(newPath+pathLength, "%d", lvl);
                strcpy(newPath+pathLength+lvlDigitsNum, extraStr);
                GDKfree(lvlStr);
 
@@ -2218,20 +2204,20 @@ str wkbAsText(char **txt, wkb **geomWKB,
                        char* sridTxt = "SRID:";
                        char* sridIntToString = NULL;
                        size_t len2 = 0;
-                       int digitsNum = 0;
+                       int digitsNum = 10; //MAX_INT = 2,147,483,647
+
 
                        //count the number of digits in srid
                        int tmp = (*geomWKB)->srid;
                        if(tmp < 0)
                                throw(MAL, "geom.wkbAsText", "Negative SRID");
-                       digitsNum = numDigits((unsigned int)tmp);
 
                        sridIntToString = GDKmalloc(digitsNum+1);
                        if(sridIntToString == NULL) {
                                GDKfree(wkt);
                                throw(MAL, "geom.wkbAsText", MAL_MALLOC_FAIL);
                        }
-                       sprintf(sridIntToString, "%d", (*geomWKB)->srid);
+                       digitsNum = sprintf(sridIntToString, "%d", 
(*geomWKB)->srid);
 
                        len2 = 
strlen(wkt)+strlen(sridIntToString)+strlen(sridTxt)+2;
                        *txt = GDKmalloc(len2);
@@ -2253,7 +2239,7 @@ str wkbAsText(char **txt, wkb **geomWKB,
                GDKfree(wkt);
                return MAL_SUCCEED;
        }
-       throw(MAL, "geom.AsText", "Failed to create Text from Well Known 
Format");
+       throw(MAL, "geom.wkbAsText", "Failed to create Text from Well Known 
Format");
 }
 
 str wkbMLineStringToPolygon(wkb** geomWKB, str* geomWKT, int* srid, int* flag) 
{
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to