Changeset: d2a8007638c0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d2a8007638c0
Modified Files:
geom/monetdb5/geom.c
geom/monetdb5/geom.mal
Branch: malparsing
Log Message:
Fix MAL errors and freeException
diffs (122 lines):
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -854,18 +854,18 @@ segmentizeLineString(GEOSGeometry **outG
//store the points so that I do not have to read them multiple times
using geos
if ((xCoords_org = GDKmalloc(pointsNum * sizeof(double))) == NULL) {
*outGeometry = NULL;
- throw(MAL, "geom.Segmentize", "Could not allocate memory for %d
double values", pointsNum);
+ throw(MAL, "geom.Segmentize", MAL_MALLOC_FAIL " for %d double
values", pointsNum);
}
if ((yCoords_org = GDKmalloc(pointsNum * sizeof(double))) == NULL) {
GDKfree(xCoords_org);
*outGeometry = NULL;
- throw(MAL, "geom.Segmentize", "Could not allocate memory for %d
double values", pointsNum);
+ throw(MAL, "geom.Segmentize", MAL_MALLOC_FAIL " for %d double
values", pointsNum);
}
if ((zCoords_org = GDKmalloc(pointsNum * sizeof(double))) == NULL) {
GDKfree(xCoords_org);
GDKfree(yCoords_org);
*outGeometry = NULL;
- throw(MAL, "geom.Segmentize", "Could not allocate memory for %d
double values", pointsNum);
+ throw(MAL, "geom.Segmentize", MAL_MALLOC_FAIL " for %d double
values", pointsNum);
}
if (!GEOSCoordSeq_getX(gcs_old, 0, &xCoords_org[0])) {
@@ -2236,7 +2236,7 @@ wkbaFROMSTR_withSRID(char *fromStr, int
size_t parsedBytes;
str err = wkbFROMSTR_withSRID(fromStr + skipBytes, len,
&(*toArray)->data[i], srid, &parsedBytes);
if (err != MAL_SUCCEED) {
- GDKfree(err);
+ freeException(err);
return 0;
}
skipBytes += parsedBytes;
@@ -3272,7 +3272,7 @@ wkbMakeLineAggr(wkb **outWKB, bat *inBAT
err = wkbFromWKB(outWKB, &aWKB);
BBPunfix(inBAT->batCacheid);
if (err) {
- GDKfree(err);
+ freeException(err);
throw(MAL, "geom.MakeLine", MAL_MALLOC_FAIL);
}
return MAL_SUCCEED;
@@ -4223,7 +4223,7 @@ wkbUnionAggr(wkb **outWKB, bat *inBAT_id
err = wkbFromWKB(outWKB, &aWKB);
BBPunfix(inBAT->batCacheid);
if (err) {
- GDKfree(err);
+ freeException(err);
throw(MAL, "geom.Union", MAL_MALLOC_FAIL);
}
return MAL_SUCCEED;
@@ -5096,7 +5096,7 @@ wkbFROMSTR(char *geomWKT, int *len, wkb
err = wkbFROMSTR_withSRID(geomWKT, len, geomWKB, 0, &parsedBytes);
if (err != MAL_SUCCEED) {
- GDKfree(err);
+ freeException(err);
return 0;
}
return (int) parsedBytes;
diff --git a/geom/monetdb5/geom.mal b/geom/monetdb5/geom.mal
--- a/geom/monetdb5/geom.mal
+++ b/geom/monetdb5/geom.mal
@@ -155,15 +155,17 @@ end GeomCollFromText;
command NumRings(w:wkb, exterior:int) :int address wkbNumRings
comment "Returns the number of interior rings+exterior on the first polygon of
the geometry";
-function NumInteriorRings(w:wkb) :int;
- x := NumRings(w, 0);
- return x;
-end NumInteriorRings
+
function NRings(w:wkb) :int;
- x := NumRings(w, 1);
+ x := geom.NumRings(w, 1);
return x;
end NRings;
+function NumInteriorRings(w:wkb) :int;
+ x := geom.NumRings(w, 0);
+ return x;
+end NumInteriorRings;
+
function BdPolyFromText(wkt:str, srid:int) :wkb;
x := MLineStringToPolygon(wkt,srid,0);
return x;
@@ -173,9 +175,9 @@ function BdMPolyFromText(wkt:str, srid:i
return x;
end BdMPolyFromText;
-
command MakePointXYZM(x:dbl, y:dbl, z:dbl, m:dbl, zmFlag:int) :wkb address
wkbMakePoint
comment "creates a point using the coordinates";
+
function MakePoint(x:dbl, y:dbl) :wkb;
p := MakePointXYZM(x, y, 0:dbl, 0:dbl, 0);
return p;
@@ -193,8 +195,6 @@ function MakePoint(x:dbl, y:dbl, z:dbl,
return p;
end MakePoint;
-
-
#command MakePoint(x:dbl, y:dbl) :wkb address geomMakePoint2D
#comment "creates a point using the coordinates";
#command MakePoint(x:dbl, y:dbl, z:dbl) :wkb address geomMakePoint3D
@@ -666,11 +666,11 @@ comment "Returns the number of geometrie
command NumRings(w:bat[:wkb], exterior:int) :bat[:int] address wkbNumRings_bat
comment "Returns the number of interior rings+exterior on the first polygon of
the geometry";
function NumInteriorRings(w:bat[:wkb]) :bat[:int];
- x := NumRings(w, 0);
+ x := geom.NumRings(w, 0);
return x;
-end NumInteriorRings
+end NumInteriorRings;
function NRings(w:bat[:wkb]) :bat[:int];
- x := NumRings(w, 1);
+ x := geom.NumRings(w, 1);
return x;
end NRings;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list