]> granicus.if.org Git - postgis/commitdiff
Remove use of lw_vasprintf from liblwgeom
authorSandro Santilli <strk@keybit.net>
Tue, 17 Feb 2015 10:03:42 +0000 (10:03 +0000)
committerSandro Santilli <strk@keybit.net>
Tue, 17 Feb 2015 10:03:42 +0000 (10:03 +0000)
Drops useless heap allocations

git-svn-id: http://svn.osgeo.org/postgis/trunk@13219 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/cunit/cu_tester.c
liblwgeom/lwutil.c

index e05a6ee8da9e9cad78492703e6a79aebc5678192..2addc3a5f5166b8bd6455171115e8398b66dd501 100644 (file)
@@ -242,19 +242,8 @@ int main(int argc, char *argv[])
 static void
 cu_errorreporter(const char *fmt, va_list ap)
 {
-       char *msg;
-
-       /** This is a GNU extension.
-       * Dunno how to handle errors here.
-        */
-       if (!lw_vasprintf (&msg, fmt, ap))
-       {
-               va_end (ap);
-               return;
-       }
-
-       strncpy(cu_error_msg, msg, MAX_CUNIT_ERROR_LENGTH);
-       lwfree(msg);
+  vsnprintf (cu_error_msg, MAX_CUNIT_MSG_LENGTH, fmt, ap);
+  cu_error_msg[MAX_CUNIT_MSG_LENGTH]='\0';
 }
 
 void
index 713e6a28644a78597ed579cc03f1e268ffe8893f..745439fa973611d7a302bd580253137d4e973939 100644 (file)
@@ -23,6 +23,8 @@ static void default_errorreporter(const char *fmt, va_list ap);
 lwreporter lwnotice_var = default_noticereporter;
 lwreporter lwerror_var = default_errorreporter;
 
+#define LW_MSG_MAXLEN 256
+
 static char *lwgeomTypeName[] =
 {
        "Unknown",
@@ -108,37 +110,19 @@ default_reallocator(void *mem, size_t size)
 static void
 default_noticereporter(const char *fmt, va_list ap)
 {
-       char *msg;
-
-       /*
-        * This is a GNU extension.
-        * Dunno how to handle errors here.
-        */
-       if (!lw_vasprintf (&msg, fmt, ap))
-       {
-               va_end (ap);
-               return;
-       }
+       char *msg[LW_MSG_MAXLEN+1];
+       vsnprintf (msg, LW_MSG_MAXLEN, fmt, ap);
+       msg[LW_MSG_MAXLEN]='\0';
        printf("%s\n", msg);
-       free(msg);
 }
 
 static void
 default_errorreporter(const char *fmt, va_list ap)
 {
-       char *msg;
-
-       /*
-        * This is a GNU extension.
-        * Dunno how to handle errors here.
-        */
-       if (!lw_vasprintf (&msg, fmt, ap))
-       {
-               va_end (ap);
-               return;
-       }
+       char *msg[LW_MSG_MAXLEN+1];
+       vsnprintf (msg, LW_MSG_MAXLEN, fmt, ap);
+       msg[LW_MSG_MAXLEN]='\0';
        fprintf(stderr, "%s\n", msg);
-       free(msg);
        exit(1);
 }