aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-10-30 20:52:29 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-10-30 20:52:29 +0100
commitc45a436fc594101f676cfabe90225d825d935fec (patch)
treeefc036644f49fcf9243c2e083f58d3d7b1c40f84
parentd8daa3e045ca2f41edcbed533bc5a9fef1363a17 (diff)
clean up duplicated code
-rw-r--r--backend/print.cpp17
-rw-r--r--frontend/Exception.cpp18
-rw-r--r--frontend/Exception.h4
3 files changed, 6 insertions, 33 deletions
diff --git a/backend/print.cpp b/backend/print.cpp
index fc8ad9b..1cb6a75 100644
--- a/backend/print.cpp
+++ b/backend/print.cpp
@@ -6,23 +6,6 @@
#include "print.h"
#include "util.h"
-static String va_stringf(va_list args, const char * fmt) {
- va_list args_copy;
- va_copy(args_copy, args);
-
- size_t sz = vsnprintf(NULL, 0, fmt, args_copy) + 1;
- char * msg = (char *) malloc(sz);
- va_end(args_copy);
-
- vsnprintf(msg, sz, fmt, args);
-
- String out = msg;
- free(msg);
-
- va_end(args);
- return out;
-}
-
void lprtf(const char * fmt, ...) {
va_list args;
va_start(args, fmt);
diff --git a/frontend/Exception.cpp b/frontend/Exception.cpp
index 423f4e9..c852f0a 100644
--- a/frontend/Exception.cpp
+++ b/frontend/Exception.cpp
@@ -1,30 +1,22 @@
#include <cstdarg>
#include <cstdio>
#include <cstdlib>
+#include <cstring>
+
+#include "backend/String.h"
#include "Exception.h"
using namespace std;
const char * Exception::what() {
- return error.get();
-}
-
-void Exception::va_format(va_list args, const char * fmt) {
- va_list args_copy;
- va_copy(args_copy, args);
- size_t sz = vsnprintf(NULL, 0, fmt, args_copy) + 1;
- va_end(args_copy);
-
- this->error = unique_ptr<char>(static_cast<char *>(malloc(sz)));
-
- vsnprintf(this->error.get(), sz, fmt, args);
+ return this->error.get();
}
Exception::Exception(const char * fmt, ...) {
va_list args;
va_start(args, fmt);
- va_format(args, fmt);
+ this->error = unique_ptr<char>(strdup(String::va_fmt(args, fmt).c_str()));
va_end(args);
}
diff --git a/frontend/Exception.h b/frontend/Exception.h
index 633cb4f..3bbced2 100644
--- a/frontend/Exception.h
+++ b/frontend/Exception.h
@@ -1,6 +1,5 @@
#pragma once
-#include <cstdarg>
#include <exception>
#include <memory>
@@ -11,7 +10,6 @@ public:
protected:
Exception() = default;
- void va_format(va_list args, const char * fmt);
- std::unique_ptr<char> error = NULL;
+ std::unique_ptr<char> error;
};