Improve ACC error reporting.
Now return an error code and an error message, rather than just
printing to stderr or calling exit().
Check to see we don't exceed our code size.
diff --git a/libacc/tests/main.cpp b/libacc/tests/main.cpp
index 8cfc196..e65103e 100644
--- a/libacc/tests/main.cpp
+++ b/libacc/tests/main.cpp
@@ -81,12 +81,18 @@
delete[] text;
accCompileScript(script);
-
+ int result = accGetError(script);
MainPtr mainPointer = 0;
+ if (result != 0) {
+ char buf[1024];
+ accGetScriptInfoLog(script, sizeof(buf), NULL, buf);
+ fprintf(stderr, "%ss", buf);
+ goto exit;
+ }
accGetScriptLabel(script, "main", (ACCvoid**) & mainPointer);
- int result = accGetError(script);
+ result = accGetError(script);
if (result == ACC_NO_ERROR) {
fprintf(stderr, "Executing compiled code:\n");
int codeArgc = argc - i + 1;
@@ -96,6 +102,8 @@
fprintf(stderr, "result: %d\n", result);
}
+exit:
+
accDeleteScript(script);
return result;