From 4e533b7253f20a0cfab418d03554b645eef64bd5 Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Mon, 20 Oct 2014 07:50:42 +0000 Subject: [PATCH] get rid of gu/str.(c|h) --- src/runtime/c/Makefile.am | 2 - src/runtime/c/gu/out.c | 12 ++++- src/runtime/c/gu/seq.c | 1 - src/runtime/c/gu/str.c | 83 ----------------------------------- src/runtime/c/gu/str.h | 25 ----------- src/ui/android/jni/Android.mk | 2 +- 6 files changed, 11 insertions(+), 114 deletions(-) delete mode 100644 src/runtime/c/gu/str.c delete mode 100644 src/runtime/c/gu/str.h diff --git a/src/runtime/c/Makefile.am b/src/runtime/c/Makefile.am index a695fbf81..539a0e507 100644 --- a/src/runtime/c/Makefile.am +++ b/src/runtime/c/Makefile.am @@ -22,7 +22,6 @@ guinclude_HEADERS = \ gu/out.h \ gu/prime.h \ gu/seq.h \ - gu/str.h \ gu/string.h \ gu/sysdeps.h \ gu/ucs.h \ @@ -54,7 +53,6 @@ libgu_la_SOURCES = \ gu/mem.c \ gu/out.c \ gu/prime.c \ - gu/str.c \ gu/string.c \ gu/utf8.c \ gu/ucs.c \ diff --git a/src/runtime/c/gu/out.c b/src/runtime/c/gu/out.c index 6bde9cc58..d08b192dc 100644 --- a/src/runtime/c/gu/out.c +++ b/src/runtime/c/gu/out.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include static bool gu_out_is_buffering(GuOut* out) @@ -261,7 +261,15 @@ void gu_vprintf(const char* fmt, va_list args, GuOut* out, GuExn* err) { GuPool* tmp_pool = gu_local_pool(); - char* str = gu_vasprintf(fmt, args, tmp_pool); + + va_list args2; + va_copy(args2, args); + int len = vsnprintf(NULL, 0, fmt, args2); + gu_assert_msg(len >= 0, "Invalid format string: \"%s\"", fmt); + va_end(args2); + char* str = gu_new_n(char, len + 1, tmp_pool); + vsnprintf(str, len + 1, fmt, args); + gu_out_bytes(out, (const uint8_t*) str, strlen(str), err); gu_pool_free(tmp_pool); } diff --git a/src/runtime/c/gu/seq.c b/src/runtime/c/gu/seq.c index 83d7cfd9f..65d1b945c 100644 --- a/src/runtime/c/gu/seq.c +++ b/src/runtime/c/gu/seq.c @@ -1,7 +1,6 @@ #include #include #include -#include #include #include #ifdef __MINGW32__ diff --git a/src/runtime/c/gu/str.c b/src/runtime/c/gu/str.c deleted file mode 100644 index 1453f78e4..000000000 --- a/src/runtime/c/gu/str.c +++ /dev/null @@ -1,83 +0,0 @@ -#include -#include -#include -#include -#include -#include - -const char gu_empty_str[] = ""; -const char* const gu_null_str = NULL; - -char* -gu_new_str(size_t size, GuPool* pool) -{ - char* str = gu_new_n(char, size + 1, pool); - memset(str, '\0', size + 1); - return str; -} - -char* -gu_strdup(const char* cstr, GuPool* pool) -{ - int len = strlen(cstr); - char* str = gu_new_str(len, pool); - memcpy(str, cstr, len); - return str; -} - -bool -gu_str_eq(GuStr s1, GuStr s2) -{ - return (strcmp(s1, s2)) == 0; -} - -static bool -gu_str_is_equal(GuEquality* self, const void* p1, const void* p2) -{ - (void) self; - const GuStr* sp1 = p1; - const GuStr* sp2 = p2; - return gu_str_eq(*sp1, *sp2); -} - -static GuHash -gu_str_hasher_hash(GuHasher* self, const void* p) -{ - (void) self; - GuHash h = 0; - const GuStr* sp = p; - for (const char* s = *sp; *s != '\0'; s++) { - h = 101 * h + (unsigned char) *s; - } - return h; -} - -GuHasher gu_str_hasher[1] = { - { - .eq = { .is_equal = gu_str_is_equal }, - .hash = gu_str_hasher_hash - } -}; - -char* -gu_vasprintf(const char* fmt, va_list args, GuPool* pool) -{ - va_list args2; - va_copy(args2, args); - int len = vsnprintf(NULL, 0, fmt, args2); - gu_assert_msg(len >= 0, "Invalid format string: \"%s\"", fmt); - va_end(args2); - char* str = gu_new_str(len, pool); - vsnprintf(str, len + 1, fmt, args); - return str; -} - -char* -gu_asprintf(GuPool* pool, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - char* str = gu_vasprintf(fmt, args, pool); - va_end(args); - return str; -} diff --git a/src/runtime/c/gu/str.h b/src/runtime/c/gu/str.h deleted file mode 100644 index fcb7acfae..000000000 --- a/src/runtime/c/gu/str.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef GU_STR_H_ -#define GU_STR_H_ - -#include -#include - -extern const char gu_empty_str[]; -extern const char* const gu_null_str; - -typedef const char* GuStr; - -char* gu_new_str(size_t size, GuPool* pool); - -char* gu_strdup(const char* str, GuPool* pool); - -bool -gu_str_eq(GuStr s1, GuStr s2); - -extern GuHasher gu_str_hasher[1]; - -char* gu_vasprintf(const char* fmt, va_list args, GuPool* pool); - -char* gu_asprintf(GuPool* pool, const char* fmt, ...); - -#endif // GU_STR_H_ diff --git a/src/ui/android/jni/Android.mk b/src/ui/android/jni/Android.mk index 8e3ddd318..ffcb66199 100644 --- a/src/ui/android/jni/Android.mk +++ b/src/ui/android/jni/Android.mk @@ -5,7 +5,7 @@ include $(CLEAR_VARS) jni_c_files := jpgf.c pgf_c_files := data.c expr.c graphviz.c linearizer.c literals.c parser.c parseval.c pgf.c printer.c reader.c \ reasoner.c evaluator.c jit.c typechecker.c -gu_c_files := assert.c choice.c exn.c fun.c in.c map.c out.c str.c utf8.c \ +gu_c_files := assert.c choice.c exn.c fun.c in.c map.c out.c utf8.c \ bits.c defs.c enum.c file.c hash.c mem.c prime.c seq.c string.c ucs.c variant.c LOCAL_MODULE := jpgf