Changeset: bf32fd5c0e07 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bf32fd5c0e07
Modified Files:
geom/monetdb5/geom.mx
Branch: Aug2011
Log Message:
geom: avoid using alloca
diffs (87 lines):
diff --git a/geom/monetdb5/geom.mx b/geom/monetdb5/geom.mx
--- a/geom/monetdb5/geom.mx
+++ b/geom/monetdb5/geom.mx
@@ -494,6 +494,7 @@ mbrFromString(mbr **w, str *src)
{
int len = 0;
char *errbuf;
+ str ex;
if (mbrFROMSTR(*src, &len, w))
return MAL_SUCCEED;
@@ -501,10 +502,16 @@ mbrFromString(mbr **w, str *src)
if (errbuf) {
if (strncmp(errbuf, "!ERROR: ", 8) == 0)
errbuf += 8;
- errbuf = strcpy(alloca(strlen(errbuf) + 1), errbuf);
- GDKerrbuf[0] = 0;
+ } else {
+ errbuf = "cannot parse string";
}
- throw(MAL, "mbr.FromString", "%s", errbuf ? errbuf : "cannot parse
string");
+
+ ex = createException(MAL, "mbr.FromString", "%s", errbuf);
+
+ if (GDKerrbuf)
+ GDKerrbuf[0] = '\0';
+
+ return ex;
}
geom_export str mbrFromMBR(mbr **w, mbr **src);
@@ -634,6 +641,7 @@ wkbFromString(wkb **w, str *wkt)
{
int len = 0;
char *errbuf;
+ str ex;
if (wkbFROMSTR(*wkt, &len, w))
return MAL_SUCCEED;
@@ -641,10 +649,16 @@ wkbFromString(wkb **w, str *wkt)
if (errbuf) {
if (strncmp(errbuf, "!ERROR: ", 8) == 0)
errbuf += 8;
- errbuf = strcpy(alloca(strlen(errbuf) + 1), errbuf);
- GDKerrbuf[0] = 0;
+ } else {
+ errbuf = "cannot parse string";
}
- throw(MAL, "wkb.FromString", "%s", errbuf ? errbuf : "cannot parse
string");
+
+ ex = createException(MAL, "wkb.FromString", "%s", errbuf);
+
+ if (GDKerrbuf)
+ GDKerrbuf[0] = '\0';
+
+ return ex;
}
geom_export str wkbFromWKB(wkb **w, wkb **src);
@@ -670,6 +684,7 @@ wkbFromText(wkb **w, str *wkt, int *tpe)
{
int len = 0, te = *tpe;
char *errbuf;
+ str ex;
*w = NULL;
if (wkbFROMSTR(*wkt, &len, w) &&
@@ -685,10 +700,16 @@ wkbFromText(wkb **w, str *wkt, int *tpe)
if (errbuf) {
if (strncmp(errbuf, "!ERROR: ", 8) == 0)
errbuf += 8;
- errbuf = strcpy(alloca(strlen(errbuf) + 1), errbuf);
- GDKerrbuf[0] = 0;
+ } else {
+ errbuf = "cannot parse string";
}
- throw(MAL, "wkb.FromText", "%s", errbuf ? errbuf : "cannot parse
string");
+
+ ex = createException(MAL, "wkb.FromText", "%s", errbuf);
+
+ if (GDKerrbuf)
+ GDKerrbuf[0] = '\0';
+
+ return ex;
}
geom_export BUN wkbHASH(wkb *w);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list