Repository: lucy-clownfish
Updated Branches:
  refs/heads/master 71ea0c573 -> cf29eb724


Remove obsolete CharBuf ctors and methods

Also change CB_Grow return type.


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/ad19eb8d
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/ad19eb8d
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/ad19eb8d

Branch: refs/heads/master
Commit: ad19eb8d8d8e5272365a5808ad09c34defd88a7e
Parents: 71ea0c5
Author: Nick Wellnhofer <wellnho...@aevum.de>
Authored: Thu Nov 12 14:47:14 2015 +0100
Committer: Nick Wellnhofer <wellnho...@aevum.de>
Committed: Thu Nov 12 14:49:50 2015 +0100

----------------------------------------------------------------------
 runtime/core/Clownfish/CharBuf.c          | 100 ++-----------------------
 runtime/core/Clownfish/CharBuf.cfh        |  47 +-----------
 runtime/core/Clownfish/Err.c              |   3 +-
 runtime/core/Clownfish/Test/TestCharBuf.c |  79 ++-----------------
 4 files changed, 17 insertions(+), 212 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad19eb8d/runtime/core/Clownfish/CharBuf.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/CharBuf.c b/runtime/core/Clownfish/CharBuf.c
index 6e54910..bd388b8 100644
--- a/runtime/core/Clownfish/CharBuf.c
+++ b/runtime/core/Clownfish/CharBuf.c
@@ -68,60 +68,18 @@ CB_init(CharBuf *self, size_t size) {
     return self;
 }
 
-CharBuf*
-CB_new_from_str(String *string) {
-    return CB_new_from_trusted_utf8(string->ptr, string->size);
-}
-
-CharBuf*
-CB_new_from_utf8(const char *ptr, size_t size) {
-    if (!StrHelp_utf8_valid(ptr, size)) {
-        DIE_INVALID_UTF8(ptr, size);
-    }
-    return CB_new_from_trusted_utf8(ptr, size);
-}
-
-CharBuf*
-CB_new_from_trusted_utf8(const char *ptr, size_t size) {
-    CharBuf *self = (CharBuf*)Class_Make_Obj(CHARBUF);
-
-    // Derive.
-    self->ptr = (char*)MALLOCATE(size + 1);
-
-    // Copy.
-    memcpy(self->ptr, ptr, size);
-
-    // Assign.
-    self->size      = size;
-    self->cap       = size + 1;
-    self->ptr[size] = '\0'; // Null terminate.
-
-    return self;
-}
-
-CharBuf*
-CB_newf(const char *pattern, ...) {
-    CharBuf *self = CB_new(strlen(pattern));
-    va_list args;
-    va_start(args, pattern);
-    CB_VCatF(self, pattern, args);
-    va_end(args);
-    return self;
-}
-
 void
 CB_Destroy_IMP(CharBuf *self) {
     FREEMEM(self->ptr);
     SUPER_DESTROY(self, CHARBUF);
 }
 
-char*
+void
 CB_Grow_IMP(CharBuf *self, size_t size) {
     if (size >= self->cap) {
         self->cap = size + 1;
         self->ptr = (char*)REALLOCATE(self->ptr, self->cap);
     }
-    return self->ptr;
 }
 
 static void
@@ -318,44 +276,14 @@ CB_Cat_Char_IMP(CharBuf *self, int32_t code_point) {
 
 CharBuf*
 CB_Clone_IMP(CharBuf *self) {
-    return CB_new_from_trusted_utf8(self->ptr, self->size);
-}
+    size_t   size  = self->size;
+    CharBuf *clone = CB_new(size);
 
-static CFISH_INLINE void
-SI_mimic_utf8(CharBuf *self, const char* ptr, size_t size) {
-    if (size >= self->cap) { CB_Grow(self, size); }
-    memmove(self->ptr, ptr, size);
-    self->size = size;
-    self->ptr[size] = '\0';
-}
+    clone->size = size;
+    memcpy(clone->ptr, self->ptr, size);
+    clone->ptr[size] = '\0';
 
-void
-CB_Mimic_Utf8_IMP(CharBuf *self, const char* ptr, size_t size) {
-    if (!StrHelp_utf8_valid(ptr, size)) {
-        DIE_INVALID_UTF8(ptr, size);
-    }
-    SI_mimic_utf8(self, ptr, size);
-}
-
-void
-CB_Mimic_IMP(CharBuf *self, Obj *other) {
-    const char *ptr;
-    size_t size;
-    if (Obj_is_a(other, CHARBUF)) {
-        CharBuf *twin = (CharBuf*)other;
-        ptr  = twin->ptr;
-        size = twin->size;
-    }
-    else if (Obj_is_a(other, STRING)) {
-        String *twin = (String*)other;
-        ptr  = twin->ptr;
-        size = twin->size;
-    }
-    else {
-        THROW(ERR, "CharBuf can't mimic %o", Obj_get_class_name(other));
-        return; // unreachable
-    }
-    SI_mimic_utf8(self, ptr, size);
+    return clone;
 }
 
 static CFISH_INLINE void
@@ -393,23 +321,9 @@ CB_Clear_IMP(CharBuf *self) {
     self->size = 0;
 }
 
-void
-CB_Set_Size_IMP(CharBuf *self, size_t size) {
-    if (size >= self->cap) {
-        THROW(ERR, "Can't set size of CharBuf beyond capacity");
-        return; // unreachable
-    }
-    self->size = size;
-}
-
 size_t
 CB_Get_Size_IMP(CharBuf *self) {
     return self->size;
 }
 
-char*
-CB_Get_Ptr8_IMP(CharBuf *self) {
-    return self->ptr;
-}
-
 

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad19eb8d/runtime/core/Clownfish/CharBuf.cfh
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/CharBuf.cfh 
b/runtime/core/Clownfish/CharBuf.cfh
index 0112ae8..7714443 100644
--- a/runtime/core/Clownfish/CharBuf.cfh
+++ b/runtime/core/Clownfish/CharBuf.cfh
@@ -33,38 +33,6 @@ final class Clownfish::CharBuf nickname CB
     inert CharBuf*
     init(CharBuf *self, size_t size);
 
-    /** Return a new CharBuf which holds a copy of the passed-in String.
-     */
-    inert incremented CharBuf*
-    new_from_str(String *string);
-
-    /** Return a new CharBuf which holds a copy of the passed-in string.
-     * Check for UTF-8 validity.
-     */
-    inert incremented CharBuf*
-    new_from_utf8(const char *utf8, size_t size);
-
-    /** Return a new CharBuf which holds a copy of the passed-in string.  No
-     * validity checking is performed.
-     */
-    inert incremented CharBuf*
-    new_from_trusted_utf8(const char *utf8, size_t size);
-
-    /** Return a pointer to a new CharBuf which contains formatted data
-     * expanded according to CB_VCatF.
-     *
-     * Note: a user-supplied `pattern` string is a security hole
-     * and must not be allowed.
-     */
-    inert incremented CharBuf*
-    newf(const char *pattern, ...);
-
-    public void
-    Mimic(CharBuf *self, Obj *other);
-
-    void
-    Mimic_Utf8(CharBuf *self, const char *ptr, size_t size);
-
     /** Concatenate the passed-in string onto the end of the CharBuf.
      */
     void
@@ -111,10 +79,8 @@ final class Clownfish::CharBuf nickname CB
     /** Assign more memory to the CharBuf, if it doesn't already have enough
      * room to hold a string of `size` bytes.  Cannot shrink the
      * allocation.
-     *
-     * @return a pointer to the raw buffer.
      */
-    char*
+    void
     Grow(CharBuf *self, size_t size);
 
     /** Clear the CharBuf.
@@ -122,22 +88,11 @@ final class Clownfish::CharBuf nickname CB
     void
     Clear(CharBuf *self);
 
-    /** Set the CharBuf's `size` attribute.
-     */
-    void
-    Set_Size(CharBuf *self, size_t size);
-
     /** Get the CharBuf's `size` attribute.
      */
     size_t
     Get_Size(CharBuf *self);
 
-    /** Return the internal backing array for the CharBuf if its internal
-     * encoding is UTF-8.  If it is not encoded as UTF-8 throw an exception.
-     */
-    char*
-    Get_Ptr8(CharBuf *self);
-
     public incremented CharBuf*
     Clone(CharBuf *self);
 

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad19eb8d/runtime/core/Clownfish/Err.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/Err.c b/runtime/core/Clownfish/Err.c
index 8463e0d..dd398e7 100644
--- a/runtime/core/Clownfish/Err.c
+++ b/runtime/core/Clownfish/Err.c
@@ -154,7 +154,8 @@ Err_Get_Mess_IMP(Err *self) {
 
 void
 Err_Add_Frame_IMP(Err *self, const char *file, int line, const char *func) {
-    CharBuf *buf = CB_new_from_str(self->mess);
+    CharBuf *buf = CB_new(0);
+    CB_Cat(buf, self->mess);
 
     if (!Str_Ends_With_Utf8(self->mess, "\n", 1)) {
         CB_Cat_Char(buf, '\n');

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad19eb8d/runtime/core/Clownfish/Test/TestCharBuf.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/Test/TestCharBuf.c 
b/runtime/core/Clownfish/Test/TestCharBuf.c
index 5763e99..744c4f4 100644
--- a/runtime/core/Clownfish/Test/TestCharBuf.c
+++ b/runtime/core/Clownfish/Test/TestCharBuf.c
@@ -42,7 +42,9 @@ TestCB_new() {
 
 static CharBuf*
 S_get_cb(const char *string) {
-    return CB_new_from_utf8(string, strlen(string));
+    CharBuf *cb = CB_new(0);
+    CB_Cat_Utf8(cb, string, strlen(string));
+    return cb;
 }
 
 static String*
@@ -59,25 +61,6 @@ S_cb_equals(CharBuf *cb, String *other) {
 }
 
 static void
-test_new(TestBatchRunner *runner) {
-    {
-        String  *str = Str_newf("CharBuf from String");
-        CharBuf *cb  = CB_new_from_str(str);
-        TEST_TRUE(runner, S_cb_equals(cb, str), "CB_new_from_str");
-        DECREF(str);
-        DECREF(cb);
-    }
-
-    {
-        CharBuf *cb     = CB_newf("%i32 %s", 99, "Luftballons");
-        String  *wanted = Str_newf("99 Luftballons");
-        TEST_TRUE(runner, S_cb_equals(cb, wanted), "CB_newf");
-        DECREF(cb);
-        DECREF(wanted);
-    }
-}
-
-static void
 test_Cat(TestBatchRunner *runner) {
     String  *wanted = Str_newf("a%s", smiley);
     CharBuf *got    = S_get_cb("");
@@ -105,63 +88,17 @@ test_Cat(TestBatchRunner *runner) {
 }
 
 static void
-test_Mimic_and_Clone(TestBatchRunner *runner) {
+test_Clone(TestBatchRunner *runner) {
     String  *wanted    = S_get_str("foo");
     CharBuf *wanted_cb = S_get_cb("foo");
-    CharBuf *got       = S_get_cb("bar");
-
-    CB_Mimic(got, (Obj*)wanted);
-    TEST_TRUE(runner, S_cb_equals(got, wanted), "Mimic String");
-    DECREF(got);
-
-    got = S_get_cb("bar");
-    CB_Mimic(got, (Obj*)wanted_cb);
-    TEST_TRUE(runner, S_cb_equals(got, wanted), "Mimic CharBuf");
-    DECREF(got);
-
-    got = S_get_cb("bar");
-    CB_Mimic_Utf8(got, "foo", 3);
-    TEST_TRUE(runner, S_cb_equals(got, wanted), "Mimic_Utf8");
-    DECREF(got);
-
-    got = CB_Clone(wanted_cb);
+    CharBuf *got       = CB_Clone(wanted_cb);
     TEST_TRUE(runner, S_cb_equals(got, wanted), "Clone");
     DECREF(got);
-
     DECREF(wanted);
     DECREF(wanted_cb);
 }
 
 static void
-test_Get_Ptr8(TestBatchRunner *runner) {
-    CharBuf *cb = CB_new(64);
-
-    char *ptr8 = CB_Get_Ptr8(cb);
-    strcpy(ptr8, "0123456789");
-    CB_Set_Size(cb, 10);
-
-    TEST_INT_EQ(runner, CB_Get_Size(cb), 10, "Set_Size/Get_Size");
-
-    String *wanted = S_get_str("0123456789");
-    TEST_TRUE(runner, S_cb_equals(cb, wanted), "Get_Ptr8");
-
-    DECREF(cb);
-    DECREF(wanted);
-}
-
-/*
-static void
-test_Truncate(TestBatchRunner *runner) {
-    String  *wanted = Str_newf("a%s", smiley);
-    CharBuf *got    = CB_newf("a%s%sb%sc", smiley, smiley, smiley);
-    CB_Truncate(got, 2);
-    TEST_TRUE(runner, S_cb_equals(got, wanted), "Truncate");
-    DECREF(wanted);
-    DECREF(got);
-}
-*/
-
-static void
 test_vcatf_percent(TestBatchRunner *runner) {
     String  *wanted = S_get_str("foo % bar");
     CharBuf *got = S_get_cb("foo");
@@ -336,8 +273,7 @@ test_Clear(TestBatchRunner *runner) {
 
 void
 TestCB_Run_IMP(TestCharBuf *self, TestBatchRunner *runner) {
-    TestBatchRunner_Plan(runner, (TestBatch*)self, 27);
-    test_new(runner);
+    TestBatchRunner_Plan(runner, (TestBatch*)self, 20);
     test_vcatf_percent(runner);
     test_vcatf_s(runner);
     test_vcatf_null_string(runner);
@@ -353,8 +289,7 @@ TestCB_Run_IMP(TestCharBuf *self, TestBatchRunner *runner) {
     test_vcatf_f64(runner);
     test_vcatf_x32(runner);
     test_Cat(runner);
-    test_Mimic_and_Clone(runner);
-    test_Get_Ptr8(runner);
+    test_Clone(runner);
     test_Clear(runner);
 }
 

Reply via email to