lucy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nwelln...@apache.org
Subject [lucy-commits] [01/24] Rename ZombieCharBuf to StackString (cnick SStr)
Date Sun, 01 Sep 2013 20:16:49 GMT
Updated Branches:
  refs/heads/cfish-string-prep1 f503d90e4 -> 859a53d3b


http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Store/SharedLock.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Store/SharedLock.c b/core/Lucy/Store/SharedLock.c
index a6083b3..0155417 100644
--- a/core/Lucy/Store/SharedLock.c
+++ b/core/Lucy/Store/SharedLock.c
@@ -99,7 +99,7 @@ void
 ShLock_Clear_Stale_IMP(SharedLock *self) {
     SharedLockIVARS *const ivars = ShLock_IVARS(self);
 
-    CharBuf *lock_dir_name = (CharBuf*)ZCB_WRAP_STR("locks", 5);
+    CharBuf *lock_dir_name = (CharBuf*)SSTR_WRAP_STR("locks", 5);
     if (!Folder_Find_Folder(ivars->folder, lock_dir_name)) {
         return;
     }
@@ -127,7 +127,7 @@ bool
 ShLock_Is_Locked_IMP(SharedLock *self) {
     SharedLockIVARS *const ivars = ShLock_IVARS(self);
 
-    CharBuf *lock_dir_name = (CharBuf*)ZCB_WRAP_STR("locks", 5);
+    CharBuf *lock_dir_name = (CharBuf*)SSTR_WRAP_STR("locks", 5);
     if (!Folder_Find_Folder(ivars->folder, lock_dir_name)) {
         return false;
     }
@@ -141,14 +141,14 @@ ShLock_Is_Locked_IMP(SharedLock *self) {
         if (CB_Starts_With(entry, ivars->name)
             && CB_Ends_With_Str(entry, ".lock", 5)
            ) {
-            ZombieCharBuf *scratch = ZCB_WRAP(entry);
-            ZCB_Chop(scratch, sizeof(".lock") - 1);
-            while (isdigit(ZCB_Code_Point_From(scratch, 1))) {
-                ZCB_Chop(scratch, 1);
+            StackString *scratch = SSTR_WRAP(entry);
+            SStr_Chop(scratch, sizeof(".lock") - 1);
+            while (isdigit(SStr_Code_Point_From(scratch, 1))) {
+                SStr_Chop(scratch, 1);
             }
-            if (ZCB_Code_Point_From(scratch, 1) == '-') {
-                ZCB_Chop(scratch, 1);
-                if (ZCB_Equals(scratch, (Obj*)ivars->name)) {
+            if (SStr_Code_Point_From(scratch, 1) == '-') {
+                SStr_Chop(scratch, 1);
+                if (SStr_Equals(scratch, (Obj*)ivars->name)) {
                     DECREF(entry);
                     DECREF(dh);
                     return true;

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Analysis/TestNormalizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestNormalizer.c b/core/Lucy/Test/Analysis/TestNormalizer.c
index e396be2..9fdc8fa 100644
--- a/core/Lucy/Test/Analysis/TestNormalizer.c
+++ b/core/Lucy/Test/Analysis/TestNormalizer.c
@@ -38,8 +38,8 @@ static void
 test_Dump_Load_and_Equals(TestBatchRunner *runner) {
     Normalizer *normalizer[4];
 
-    CharBuf *NFC  = (CharBuf*)ZCB_WRAP_STR("NFC",  3);
-    CharBuf *NFKC = (CharBuf*)ZCB_WRAP_STR("NFKC", 4);
+    CharBuf *NFC  = (CharBuf*)SSTR_WRAP_STR("NFC",  3);
+    CharBuf *NFKC = (CharBuf*)SSTR_WRAP_STR("NFKC", 4);
 
     normalizer[0] = Normalizer_new(NFKC, true,  false);
     normalizer[1] = Normalizer_new(NFC,  true,  false);

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestPolyAnalyzer.c b/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
index d3f794d..56eac3e 100644
--- a/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
+++ b/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
@@ -43,8 +43,8 @@ test_Dump_Load_and_Equals(TestBatchRunner *runner) {
         return;
     }
 
-    CharBuf      *EN          = (CharBuf*)ZCB_WRAP_STR("en", 2);
-    CharBuf      *ES          = (CharBuf*)ZCB_WRAP_STR("es", 2);
+    CharBuf      *EN          = (CharBuf*)SSTR_WRAP_STR("en", 2);
+    CharBuf      *ES          = (CharBuf*)SSTR_WRAP_STR("es", 2);
     PolyAnalyzer *analyzer    = PolyAnalyzer_new(EN, NULL);
     PolyAnalyzer *other       = PolyAnalyzer_new(ES, NULL);
     Obj          *dump        = (Obj*)PolyAnalyzer_Dump(analyzer);
@@ -70,7 +70,7 @@ test_Dump_Load_and_Equals(TestBatchRunner *runner) {
 
 static void
 test_analysis(TestBatchRunner *runner) {
-    CharBuf            *EN          = (CharBuf*)ZCB_WRAP_STR("en", 2);
+    CharBuf            *EN          = (CharBuf*)SSTR_WRAP_STR("en", 2);
     CharBuf            *source_text = CB_newf("Eats, shoots and leaves.");
     Normalizer         *normalizer  = Normalizer_new(NULL, true, false);
     StandardTokenizer  *tokenizer   = StandardTokenizer_new();

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Analysis/TestRegexTokenizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestRegexTokenizer.c b/core/Lucy/Test/Analysis/TestRegexTokenizer.c
index 94b63c4..a0e16c9 100644
--- a/core/Lucy/Test/Analysis/TestRegexTokenizer.c
+++ b/core/Lucy/Test/Analysis/TestRegexTokenizer.c
@@ -38,8 +38,8 @@ test_Dump_Load_and_Equals(TestBatchRunner *runner) {
         return;
     }
 
-    ZombieCharBuf *word_char_pattern  = ZCB_WRAP_STR("\\w+", 3);
-    ZombieCharBuf *whitespace_pattern = ZCB_WRAP_STR("\\S+", 3);
+    StackString *word_char_pattern  = SSTR_WRAP_STR("\\w+", 3);
+    StackString *whitespace_pattern = SSTR_WRAP_STR("\\S+", 3);
     RegexTokenizer *word_char_tokenizer
         = RegexTokenizer_new((CharBuf*)word_char_pattern);
     RegexTokenizer *whitespace_tokenizer

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Analysis/TestSnowballStemmer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStemmer.c b/core/Lucy/Test/Analysis/TestSnowballStemmer.c
index 42ba7b1..76507bb 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStemmer.c
+++ b/core/Lucy/Test/Analysis/TestSnowballStemmer.c
@@ -33,8 +33,8 @@ TestSnowStemmer_new() {
 
 static void
 test_Dump_Load_and_Equals(TestBatchRunner *runner) {
-    CharBuf *EN = (CharBuf*)ZCB_WRAP_STR("en", 2);
-    CharBuf *ES = (CharBuf*)ZCB_WRAP_STR("es", 2);
+    CharBuf *EN = (CharBuf*)SSTR_WRAP_STR("en", 2);
+    CharBuf *ES = (CharBuf*)SSTR_WRAP_STR("es", 2);
     SnowballStemmer *stemmer = SnowStemmer_new(EN);
     SnowballStemmer *other   = SnowStemmer_new(ES);
     Obj *dump       = (Obj*)SnowStemmer_Dump(stemmer);

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Analysis/TestStandardTokenizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestStandardTokenizer.c b/core/Lucy/Test/Analysis/TestStandardTokenizer.c
index 89637b4..90d1318 100644
--- a/core/Lucy/Test/Analysis/TestStandardTokenizer.c
+++ b/core/Lucy/Test/Analysis/TestStandardTokenizer.c
@@ -51,7 +51,7 @@ static void
 test_tokenizer(TestBatchRunner *runner) {
     StandardTokenizer *tokenizer = StandardTokenizer_new();
 
-    ZombieCharBuf *word = ZCB_WRAP_STR(
+    StackString *word = SSTR_WRAP_STR(
                               " ."
                               "tha\xCC\x82t's"
                               ":"

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Highlight/TestHighlighter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHighlighter.c b/core/Lucy/Test/Highlight/TestHighlighter.c
index d2ecc19..149247e 100644
--- a/core/Lucy/Test/Highlight/TestHighlighter.c
+++ b/core/Lucy/Test/Highlight/TestHighlighter.c
@@ -59,15 +59,15 @@ TestHighlighter_new() {
 
 static void
 test_Find_Best_Fragment(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
-    CharBuf *content = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *content = (CharBuf*)SSTR_WRAP_STR("content", 7);
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 3);
-    ViewCharBuf *target = (ViewCharBuf*)ZCB_BLANK();
+    ViewCharBuf *target = (ViewCharBuf*)SStr_BLANK();
 
     VArray *spans = VA_new(1);
     VA_Push(spans, (Obj*)Span_new(2, 1, 1.0f));
     HeatMap *heat_map = HeatMap_new(spans, 133);
     DECREF(spans);
-    CharBuf *field_val = (CharBuf *)ZCB_WRAP_STR("a " PHI " " PHI " b c", 11);
+    CharBuf *field_val = (CharBuf *)SSTR_WRAP_STR("a " PHI " " PHI " b c", 11);
     int32_t top = Highlighter_Find_Best_Fragment(highlighter, field_val,
                                                  target, heat_map);
     TEST_TRUE(runner,
@@ -76,7 +76,7 @@ test_Find_Best_Fragment(TestBatchRunner *runner, Searcher *searcher, Obj *query)
     TEST_TRUE(runner,
               top == 2,
               "correct offset returned by Find_Best_Fragment");
-    field_val = (CharBuf *)ZCB_WRAP_STR("aa" PHI, 4);
+    field_val = (CharBuf *)SSTR_WRAP_STR("aa" PHI, 4);
     top = Highlighter_Find_Best_Fragment(highlighter, field_val,
                                          target, heat_map);
     TEST_TRUE(runner,
@@ -91,7 +91,7 @@ test_Find_Best_Fragment(TestBatchRunner *runner, Searcher *searcher, Obj *query)
     VA_Push(spans, (Obj*)Span_new(6, 2, 1.0f));
     heat_map = HeatMap_new(spans, 133);
     DECREF(spans);
-    field_val = (CharBuf *)ZCB_WRAP_STR("aaaab" PHI PHI, 9);
+    field_val = (CharBuf *)SSTR_WRAP_STR("aaaab" PHI PHI, 9);
     top = Highlighter_Find_Best_Fragment(highlighter, field_val,
                                          target, heat_map);
     TEST_TRUE(runner,
@@ -106,7 +106,7 @@ test_Find_Best_Fragment(TestBatchRunner *runner, Searcher *searcher, Obj *query)
     VA_Push(spans, (Obj*)Span_new(0, 1, 1.0f));
     heat_map = HeatMap_new(spans, 133);
     DECREF(spans);
-    field_val = (CharBuf *)ZCB_WRAP_STR("a" PHI "bcde", 7);
+    field_val = (CharBuf *)SSTR_WRAP_STR("a" PHI "bcde", 7);
     top = Highlighter_Find_Best_Fragment(highlighter, field_val,
                                          target, heat_map);
     TEST_TRUE(runner,
@@ -122,11 +122,11 @@ test_Find_Best_Fragment(TestBatchRunner *runner, Searcher *searcher, Obj *query)
 
 static void
 test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
-    CharBuf *content = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *content = (CharBuf*)SSTR_WRAP_STR("content", 7);
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 6);
 
-    CharBuf *field_val   = (CharBuf *)ZCB_WRAP_STR("Ook.  Urk.  Ick.  ", 18);
-    CharBuf *fragment    = (CharBuf *)ZCB_WRAP_STR("Ook.  Urk.", 10);
+    CharBuf *field_val   = (CharBuf *)SSTR_WRAP_STR("Ook.  Urk.  Ick.  ", 18);
+    CharBuf *fragment    = (CharBuf *)SSTR_WRAP_STR("Ook.  Urk.", 10);
     CharBuf *raw_excerpt = CB_new(0);
     VArray *spans = VA_new(1);
     VA_Push(spans, (Obj*)Span_new(0, 18, 1.0f));
@@ -146,7 +146,7 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
     DECREF(sentences);
     DECREF(raw_excerpt);
 
-    fragment    = (CharBuf *)ZCB_WRAP_STR(".  Urk.  I", 10);
+    fragment    = (CharBuf *)SSTR_WRAP_STR(".  Urk.  I", 10);
     raw_excerpt = CB_new(0);
     sentences   = VA_new(2);
     VA_Push(sentences, (Obj*)Span_new(6, 4, 0.0f));
@@ -163,8 +163,8 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
     DECREF(heat_map);
     DECREF(raw_excerpt);
 
-    field_val   = (CharBuf *)ZCB_WRAP_STR("Ook urk ick i.", 14);
-    fragment    = (CharBuf *)ZCB_WRAP_STR("ick i.", 6);
+    field_val   = (CharBuf *)SSTR_WRAP_STR("Ook urk ick i.", 14);
+    fragment    = (CharBuf *)SSTR_WRAP_STR("ick i.", 6);
     raw_excerpt = CB_new(0);
     spans       = VA_new(1);
     VA_Push(spans, (Obj*)Span_new(0, 14, 1.0f));
@@ -184,8 +184,8 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
     DECREF(heat_map);
     DECREF(raw_excerpt);
 
-    field_val   = (CharBuf *)ZCB_WRAP_STR("Urk.  Iz no good.", 17);
-    fragment    = (CharBuf *)ZCB_WRAP_STR("  Iz no go", 10);
+    field_val   = (CharBuf *)SSTR_WRAP_STR("Urk.  Iz no good.", 17);
+    fragment    = (CharBuf *)SSTR_WRAP_STR("  Iz no go", 10);
     raw_excerpt = CB_new(0);
     spans       = VA_new(1);
     VA_Push(spans, (Obj*)Span_new(0, 17, 1.0f));
@@ -207,7 +207,7 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
 
     // Words longer than excerpt len
 
-    field_val   = (CharBuf *)ZCB_WRAP_STR("abc/def/ghi/jkl/mno", 19);
+    field_val   = (CharBuf *)SSTR_WRAP_STR("abc/def/ghi/jkl/mno", 19);
     sentences = VA_new(1);
     VA_Push(sentences, (Obj*)Span_new(0, 19, 0.0f));
 
@@ -244,12 +244,12 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
 
 static void
 test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
-    CharBuf *content = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *content = (CharBuf*)SSTR_WRAP_STR("content", 7);
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 3);
 
     VArray *spans = VA_new(1);
     VA_Push(spans, (Obj*)Span_new(2, 1, 0.0f));
-    CharBuf *raw_excerpt = (CharBuf *)ZCB_WRAP_STR("a b c", 5);
+    CharBuf *raw_excerpt = (CharBuf *)SSTR_WRAP_STR("a b c", 5);
     CharBuf *highlighted = CB_new(0);
     Highlighter_Highlight_Excerpt(highlighter, spans, raw_excerpt,
                                   highlighted, 0);
@@ -262,7 +262,7 @@ test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query)
     spans = VA_new(2);
     VA_Push(spans, (Obj*)Span_new(0, 1, 1.0f));
     VA_Push(spans, (Obj*)Span_new(10, 10, 1.0f));
-    raw_excerpt = (CharBuf *)ZCB_WRAP_STR(PHI, 2);
+    raw_excerpt = (CharBuf *)SSTR_WRAP_STR(PHI, 2);
     highlighted = CB_new(0);
     Highlighter_Highlight_Excerpt(highlighter, spans, raw_excerpt,
                                   highlighted, 0);
@@ -274,7 +274,7 @@ test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query)
 
     spans = VA_new(1);
     VA_Push(spans, (Obj*)Span_new(3, 1, 1.0f));
-    raw_excerpt = (CharBuf *)ZCB_WRAP_STR(PHI " " PHI " " PHI, 8);
+    raw_excerpt = (CharBuf *)SSTR_WRAP_STR(PHI " " PHI " " PHI, 8);
     highlighted = CB_new(0);
     Highlighter_Highlight_Excerpt(highlighter, spans, raw_excerpt,
                                   highlighted, 1);
@@ -290,7 +290,7 @@ test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query)
     VA_Push(spans, (Obj*)Span_new(2,  4, 1.0f));
     VA_Push(spans, (Obj*)Span_new(8,  9, 1.0f));
     VA_Push(spans, (Obj*)Span_new(8,  4, 1.0f));
-    raw_excerpt = (CharBuf *)ZCB_WRAP_STR(PHI " Oook. Urk. Ick. " PHI, 21);
+    raw_excerpt = (CharBuf *)SSTR_WRAP_STR(PHI " Oook. Urk. Ick. " PHI, 21);
     highlighted = CB_new(0);
     Highlighter_Highlight_Excerpt(highlighter, spans, raw_excerpt,
                                   highlighted, 0);
@@ -308,7 +308,7 @@ test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query)
 static void
 test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
                     Hits *hits) {
-    CharBuf *content = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *content = (CharBuf*)SSTR_WRAP_STR("content", 7);
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 200);
 
     HitDoc *hit = Hits_Next(hits);
@@ -320,9 +320,9 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
               "highlighter tagged phrase and single term");
     DECREF(excerpt);
 
-    CharBuf *pre_tag = (CharBuf*)ZCB_WRAP_STR("\x1B[1m", 4);
+    CharBuf *pre_tag = (CharBuf*)SSTR_WRAP_STR("\x1B[1m", 4);
     Highlighter_Set_Pre_Tag(highlighter, pre_tag);
-    CharBuf *post_tag = (CharBuf*)ZCB_WRAP_STR("\x1B[0m", 4);
+    CharBuf *post_tag = (CharBuf*)SSTR_WRAP_STR("\x1B[0m", 4);
     Highlighter_Set_Post_Tag(highlighter, post_tag);
     excerpt = Highlighter_Create_Excerpt(highlighter, hit);
     TEST_TRUE(runner,
@@ -342,7 +342,7 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
     DECREF(hit);
     DECREF(highlighter);
 
-    query = (Obj*)ZCB_WRAP_STR("x \"x y z\" AND b", 15);
+    query = (Obj*)SSTR_WRAP_STR("x \"x y z\" AND b", 15);
     hits = Searcher_Hits(searcher, query, 0, 10, NULL);
     highlighter = Highlighter_new(searcher, query, content, 200);
     hit = Hits_Next(hits);
@@ -357,7 +357,7 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
     DECREF(highlighter);
     DECREF(hits);
 
-    query = (Obj*)ZCB_WRAP_STR("blind", 5);
+    query = (Obj*)SSTR_WRAP_STR("blind", 5);
     hits = Searcher_Hits(searcher, query, 0, 10, NULL);
     highlighter = Highlighter_new(searcher, query, content, 200);
     hit = Hits_Next(hits);
@@ -370,7 +370,7 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
     DECREF(highlighter);
     DECREF(hits);
 
-    query = (Obj*)ZCB_WRAP_STR("why", 3);
+    query = (Obj*)SSTR_WRAP_STR("why", 3);
     hits = Searcher_Hits(searcher, query, 0, 10, NULL);
     highlighter = Highlighter_new(searcher, query, content, 200);
     hit = Hits_Next(hits);
@@ -383,7 +383,7 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
     DECREF(highlighter);
     DECREF(hits);
 
-    Obj *term = (Obj*)ZCB_WRAP_STR("x", 1);
+    Obj *term = (Obj*)SSTR_WRAP_STR("x", 1);
     query = (Obj*)TermQuery_new(content, term);
     hits = Searcher_Hits(searcher, query, 0, 10, NULL);
     hit = Hits_Next(hits);
@@ -394,7 +394,7 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
               "specify field highlights correct field...");
     DECREF(excerpt);
     DECREF(highlighter);
-    CharBuf *alt = (CharBuf*)ZCB_WRAP_STR("alt", 3);
+    CharBuf *alt = (CharBuf*)SSTR_WRAP_STR("alt", 3);
     highlighter = Highlighter_new(searcher, query, alt, 200);
     excerpt = Highlighter_Create_Excerpt(highlighter, hit);
     TEST_TRUE(runner,
@@ -409,9 +409,9 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
 
 static void
 test_Find_Sentences(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
-    CharBuf *content = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *content = (CharBuf*)SSTR_WRAP_STR("content", 7);
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 200);
-    CharBuf *text = (CharBuf*)ZCB_WRAP_STR(
+    CharBuf *text = (CharBuf*)SSTR_WRAP_STR(
                         "This is a sentence. This is a sentence. This is a sentence. "
                         "This is a sentence. This is a sentence. This is a sentence. "
                         "This is a sentence. This is a sentence. This is a sentence. "
@@ -446,7 +446,7 @@ test_Find_Sentences(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
     DECREF(wanted);
     DECREF(got);
 
-    text = (CharBuf*)ZCB_WRAP_STR(" Foo", 4);
+    text = (CharBuf*)SSTR_WRAP_STR(" Foo", 4);
     got = Highlighter_Find_Sentences(highlighter, text, 0, 0);
     wanted = VA_new(1);
     VA_Push(wanted, (Obj*)Span_new(1, 3, 0.0f));
@@ -468,9 +468,9 @@ test_highlighting(TestBatchRunner *runner) {
     FullTextType *dunked_type = FullTextType_new((Analyzer*)tokenizer);
     FullTextType_Set_Highlightable(dunked_type, true);
     FullTextType_Set_Boost(dunked_type, 0.1f);
-    CharBuf *content = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *content = (CharBuf*)SSTR_WRAP_STR("content", 7);
     Schema_Spec_Field(schema, content, (FieldType*)plain_type);
-    CharBuf *alt = (CharBuf*)ZCB_WRAP_STR("alt", 3);
+    CharBuf *alt = (CharBuf*)SSTR_WRAP_STR("alt", 3);
     Schema_Spec_Field(schema, alt, (FieldType*)dunked_type);
     DECREF(plain_type);
     DECREF(dunked_type);
@@ -480,21 +480,21 @@ test_highlighting(TestBatchRunner *runner) {
     Indexer *indexer = Indexer_new(schema, (Obj*)folder, NULL, 0);
 
     Doc *doc = Doc_new(NULL, 0);
-    CharBuf *string = (CharBuf *)ZCB_WRAP_STR(TEST_STRING, TEST_STRING_LEN);
+    CharBuf *string = (CharBuf *)SSTR_WRAP_STR(TEST_STRING, TEST_STRING_LEN);
     Doc_Store(doc, content, (Obj*)string);
     Indexer_Add_Doc(indexer, doc, 1.0f);
     DECREF(doc);
 
     doc = Doc_new(NULL, 0);
-    string = (CharBuf *)ZCB_WRAP_STR("\"I see,\" said the blind man.", 28);
+    string = (CharBuf *)SSTR_WRAP_STR("\"I see,\" said the blind man.", 28);
     Doc_Store(doc, content, (Obj*)string);
     Indexer_Add_Doc(indexer, doc, 1.0f);
     DECREF(doc);
 
     doc = Doc_new(NULL, 0);
-    string = (CharBuf *)ZCB_WRAP_STR("x but not why or 2ee", 20);
+    string = (CharBuf *)SSTR_WRAP_STR("x but not why or 2ee", 20);
     Doc_Store(doc, content, (Obj*)string);
-    string = (CharBuf *)ZCB_WRAP_STR(TEST_STRING
+    string = (CharBuf *)SSTR_WRAP_STR(TEST_STRING
                                      " and extra stuff so it scores lower",
                                      TEST_STRING_LEN + 35);
     Doc_Store(doc, alt, (Obj*)string);
@@ -505,7 +505,7 @@ test_highlighting(TestBatchRunner *runner) {
     DECREF(indexer);
 
     Searcher *searcher = (Searcher*)IxSearcher_new((Obj*)folder);
-    Obj *query = (Obj*)ZCB_WRAP_STR("\"x y z\" AND " PHI, 14);
+    Obj *query = (Obj*)SSTR_WRAP_STR("\"x y z\" AND " PHI, 14);
     Hits *hits = Searcher_Hits(searcher, query, 0, 10, NULL);
 
     test_Find_Best_Fragment(runner, searcher, query);
@@ -526,7 +526,7 @@ test_hl_selection(TestBatchRunner *runner) {
     StandardTokenizer *tokenizer = StandardTokenizer_new();
     FullTextType *plain_type = FullTextType_new((Analyzer*)tokenizer);
     FullTextType_Set_Highlightable(plain_type, true);
-    CharBuf *content = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *content = (CharBuf*)SSTR_WRAP_STR("content", 7);
     Schema_Spec_Field(schema, content, (FieldType*)plain_type);
     DECREF(plain_type);
     DECREF(tokenizer);
@@ -549,7 +549,7 @@ test_hl_selection(TestBatchRunner *runner) {
         "bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. "
         "bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. ";
     Doc *doc = Doc_new(NULL, 0);
-    CharBuf *string = (CharBuf *)ZCB_WRAP_STR(test_string, strlen(test_string));
+    CharBuf *string = (CharBuf *)SSTR_WRAP_STR(test_string, strlen(test_string));
     Doc_Store(doc, content, (Obj*)string);
     Indexer_Add_Doc(indexer, doc, 1.0f);
     DECREF(doc);
@@ -558,13 +558,13 @@ test_hl_selection(TestBatchRunner *runner) {
     DECREF(indexer);
 
     Searcher *searcher = (Searcher*)IxSearcher_new((Obj*)folder);
-    Obj *query = (Obj*)ZCB_WRAP_STR("NNN MMM", 7);
+    Obj *query = (Obj*)SSTR_WRAP_STR("NNN MMM", 7);
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 200);
     Hits *hits = Searcher_Hits(searcher, query, 0, 10, NULL);
     HitDoc *hit = Hits_Next(hits);
     CharBuf *excerpt = Highlighter_Create_Excerpt(highlighter, hit);
-    CharBuf *mmm = (CharBuf*)ZCB_WRAP_STR("MMM", 3);
-    CharBuf *nnn = (CharBuf*)ZCB_WRAP_STR("NNN", 3);
+    CharBuf *mmm = (CharBuf*)SSTR_WRAP_STR("MMM", 3);
+    CharBuf *nnn = (CharBuf*)SSTR_WRAP_STR("NNN", 3);
     TEST_TRUE(runner, CB_Find(excerpt, mmm) >= 0 || CB_Find(excerpt, nnn) >= 0,
               "Sentence boundary algo doesn't chop terms");
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Index/TestSegment.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegment.c b/core/Lucy/Test/Index/TestSegment.c
index 6c2bf5e..54f0745 100644
--- a/core/Lucy/Test/Index/TestSegment.c
+++ b/core/Lucy/Test/Index/TestSegment.c
@@ -32,9 +32,9 @@ TestSeg_new() {
 static void
 test_fields(TestBatchRunner *runner) {
     Segment *segment = Seg_new(1);
-    ZombieCharBuf *foo = ZCB_WRAP_STR("foo", 3);
-    ZombieCharBuf *bar = ZCB_WRAP_STR("bar", 3);
-    ZombieCharBuf *baz = ZCB_WRAP_STR("baz", 3);
+    StackString *foo = SSTR_WRAP_STR("foo", 3);
+    StackString *bar = SSTR_WRAP_STR("bar", 3);
+    StackString *baz = SSTR_WRAP_STR("baz", 3);
     int32_t field_num;
 
     field_num = Seg_Add_Field(segment, (CharBuf*)foo);
@@ -46,7 +46,7 @@ test_fields(TestBatchRunner *runner) {
     TEST_TRUE(runner, field_num == 1,
               "Add_Field returns existing field number if field is already known");
 
-    TEST_TRUE(runner, ZCB_Equals(bar, (Obj*)Seg_Field_Name(segment, 2)),
+    TEST_TRUE(runner, SStr_Equals(bar, (Obj*)Seg_Field_Name(segment, 2)),
               "Field_Name");
     TEST_TRUE(runner, Seg_Field_Name(segment, 3) == NULL,
               "Field_Name returns NULL for unknown field number");
@@ -126,8 +126,8 @@ test_Write_File_and_Read_File(TestBatchRunner *runner) {
     Segment   *segment = Seg_new(100);
     Segment   *got     = Seg_new(100);
     CharBuf   *meta;
-    CharBuf   *flotsam = (CharBuf*)ZCB_WRAP_STR("flotsam", 7);
-    CharBuf   *jetsam  = (CharBuf*)ZCB_WRAP_STR("jetsam", 6);
+    CharBuf   *flotsam = (CharBuf*)SSTR_WRAP_STR("flotsam", 7);
+    CharBuf   *jetsam  = (CharBuf*)SSTR_WRAP_STR("jetsam", 6);
 
     Seg_Set_Count(segment, 111);
     Seg_Store_Metadata_Str(segment, "foo", 3, (Obj*)CB_newf("bar"));

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Index/TestSnapshot.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSnapshot.c b/core/Lucy/Test/Index/TestSnapshot.c
index d408bdf..b281c73 100644
--- a/core/Lucy/Test/Index/TestSnapshot.c
+++ b/core/Lucy/Test/Index/TestSnapshot.c
@@ -31,8 +31,8 @@ TestSnapshot_new() {
 static void
 test_Add_and_Delete(TestBatchRunner *runner) {
     Snapshot *snapshot = Snapshot_new();
-    CharBuf *foo = (CharBuf*)ZCB_WRAP_STR("foo", 3);
-    CharBuf *bar = (CharBuf*)ZCB_WRAP_STR("bar", 3);
+    CharBuf *foo = (CharBuf*)SSTR_WRAP_STR("foo", 3);
+    CharBuf *bar = (CharBuf*)SSTR_WRAP_STR("bar", 3);
 
     Snapshot_Add_Entry(snapshot, foo);
     Snapshot_Add_Entry(snapshot, foo); // redundant
@@ -55,8 +55,8 @@ static void
 test_path_handling(TestBatchRunner *runner) {
     Snapshot *snapshot = Snapshot_new();
     Folder   *folder   = (Folder*)RAMFolder_new(NULL);
-    CharBuf  *snap     = (CharBuf*)ZCB_WRAP_STR("snap", 4);
-    CharBuf  *crackle  = (CharBuf*)ZCB_WRAP_STR("crackle", 7);
+    CharBuf  *snap     = (CharBuf*)SSTR_WRAP_STR("snap", 4);
+    CharBuf  *crackle  = (CharBuf*)SSTR_WRAP_STR("crackle", 7);
 
     Snapshot_Write_File(snapshot, folder, snap);
     TEST_TRUE(runner, CB_Equals(snap, (Obj*)Snapshot_Get_Path(snapshot)),
@@ -79,8 +79,8 @@ static void
 test_Read_File_and_Write_File(TestBatchRunner *runner) {
     Snapshot *snapshot = Snapshot_new();
     Folder   *folder   = (Folder*)RAMFolder_new(NULL);
-    CharBuf  *snap     = (CharBuf*)ZCB_WRAP_STR("snap", 4);
-    CharBuf  *foo      = (CharBuf*)ZCB_WRAP_STR("foo", 3);
+    CharBuf  *snap     = (CharBuf*)SSTR_WRAP_STR("snap", 4);
+    CharBuf  *foo      = (CharBuf*)SSTR_WRAP_STR("foo", 3);
 
     Snapshot_Add_Entry(snapshot, foo);
     Snapshot_Write_File(snapshot, folder, snap);

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Plan/TestFieldMisc.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldMisc.c b/core/Lucy/Test/Plan/TestFieldMisc.c
index efa3455..85b59a5 100644
--- a/core/Lucy/Test/Plan/TestFieldMisc.c
+++ b/core/Lucy/Test/Plan/TestFieldMisc.c
@@ -133,7 +133,7 @@ S_check(TestBatchRunner *runner, RAMFolder *folder, CharBuf *field,
     // Don't check the contents of the hit if there aren't any.
     if (expected_num_hits) {
         HitDoc *hit = Hits_Next(hits);
-        ViewCharBuf *value = (ViewCharBuf*)ZCB_BLANK();
+        ViewCharBuf *value = (ViewCharBuf*)SStr_BLANK();
         HitDoc_Extract(hit, field, value);
         TEST_TRUE(runner, CB_Equals(united_states_cb, (Obj*)value),
                   "%s correct doc returned", CB_Get_Ptr8(field));

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Plan/TestFieldType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldType.c b/core/Lucy/Test/Plan/TestFieldType.c
index d08958d..4b377e9 100644
--- a/core/Lucy/Test/Plan/TestFieldType.c
+++ b/core/Lucy/Test/Plan/TestFieldType.c
@@ -37,7 +37,7 @@ DummyFieldType_new() {
 
 static FieldType*
 S_alt_field_type() {
-    ZombieCharBuf *name = ZCB_WRAP_STR("DummyFieldType2", 15);
+    StackString *name = SSTR_WRAP_STR("DummyFieldType2", 15);
     VTable *vtable = VTable_singleton((CharBuf*)name, DUMMYFIELDTYPE);
     FieldType *self = (FieldType*)VTable_Make_Obj(vtable);
     return FType_init(self);
@@ -83,8 +83,8 @@ test_Dump_Load_and_Equals(TestBatchRunner *runner) {
 static void
 test_Compare_Values(TestBatchRunner *runner) {
     FieldType     *type = (FieldType*)DummyFieldType_new();
-    ZombieCharBuf *a    = ZCB_WRAP_STR("a", 1);
-    ZombieCharBuf *b    = ZCB_WRAP_STR("b", 1);
+    StackString *a    = SSTR_WRAP_STR("a", 1);
+    StackString *b    = SSTR_WRAP_STR("b", 1);
 
     TEST_TRUE(runner,
               FType_Compare_Values(type, (Obj*)a, (Obj*)b) < 0,

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Plan/TestFullTextType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFullTextType.c b/core/Lucy/Test/Plan/TestFullTextType.c
index 73321e9..0a4436e 100644
--- a/core/Lucy/Test/Plan/TestFullTextType.c
+++ b/core/Lucy/Test/Plan/TestFullTextType.c
@@ -88,8 +88,8 @@ static void
 test_Compare_Values(TestBatchRunner *runner) {
     StandardTokenizer *tokenizer = StandardTokenizer_new();
     FullTextType      *type      = FullTextType_new((Analyzer*)tokenizer);
-    ZombieCharBuf     *a         = ZCB_WRAP_STR("a", 1);
-    ZombieCharBuf     *b         = ZCB_WRAP_STR("b", 1);
+    StackString       *a         = SSTR_WRAP_STR("a", 1);
+    StackString       *b         = SSTR_WRAP_STR("b", 1);
 
     TEST_TRUE(runner,
               FullTextType_Compare_Values(type, (Obj*)a, (Obj*)b) < 0,

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Search/TestQueryParserLogic.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestQueryParserLogic.c b/core/Lucy/Test/Search/TestQueryParserLogic.c
index 3ebe792..5078818 100644
--- a/core/Lucy/Test/Search/TestQueryParserLogic.c
+++ b/core/Lucy/Test/Search/TestQueryParserLogic.c
@@ -864,7 +864,7 @@ S_create_index() {
     Indexer    *indexer = Indexer_new(schema, (Obj*)folder, NULL, 0);
     uint32_t i, max;
 
-    CharBuf *field = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *field = (CharBuf*)SSTR_WRAP_STR("content", 7);
     for (i = 0, max = VA_Get_Size(doc_set); i < max; i++) {
         Doc *doc = Doc_new(NULL, 0);
         Doc_Store(doc, field, VA_Fetch(doc_set, i));
@@ -890,7 +890,7 @@ TestQPLogic_Run_IMP(TestQueryParserLogic *self, TestBatchRunner *runner) {
     IndexSearcher *searcher   = IxSearcher_new((Obj*)folder);
     QueryParser   *or_parser  = QParser_new(IxSearcher_Get_Schema(searcher),
                                             NULL, NULL, NULL);
-    ZombieCharBuf *AND        = ZCB_WRAP_STR("AND", 3);
+    StackString *AND        = SSTR_WRAP_STR("AND", 3);
     QueryParser   *and_parser = QParser_new(IxSearcher_Get_Schema(searcher),
                                             NULL, (CharBuf*)AND, NULL);
     QParser_Set_Heed_Colons(or_parser, true);

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Search/TestSortSpec.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestSortSpec.c b/core/Lucy/Test/Search/TestSortSpec.c
index 1a6329e..b65d926 100644
--- a/core/Lucy/Test/Search/TestSortSpec.c
+++ b/core/Lucy/Test/Search/TestSortSpec.c
@@ -348,7 +348,7 @@ S_test_sorted_search(IndexSearcher *searcher, CharBuf *query,
     Hits *hits = IxSearcher_Hits(searcher, (Obj*)query, 0, num_wanted, spec);
 
     VArray *results = VA_new(10);
-    ViewCharBuf *name = (ViewCharBuf*)ZCB_BLANK();
+    ViewCharBuf *name = (ViewCharBuf*)SStr_BLANK();
     HitDoc *hit_doc;
     while (NULL != (hit_doc = Hits_Next(hits))) {
         HitDoc_Extract(hit_doc, name_cb, name);
@@ -426,7 +426,7 @@ test_sort_spec(TestBatchRunner *runner) {
     for (int i = 0; i < 100; ++i) {
         char name_buf[3];
         sprintf(name_buf, "%02d", nums[i]);
-        ZombieCharBuf *name = ZCB_WRAP_STR(name_buf, 2);
+        StackString *name = SSTR_WRAP_STR(name_buf, 2);
         S_add_doc(indexer, (Obj*)name, num_cb, NULL);
         if (i % 10 == 0) {
             S_refresh_indexer(&indexer, schema, folder);

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestCompoundFileReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestCompoundFileReader.c b/core/Lucy/Test/Store/TestCompoundFileReader.c
index 1e0de34..7166a35 100644
--- a/core/Lucy/Test/Store/TestCompoundFileReader.c
+++ b/core/Lucy/Test/Store/TestCompoundFileReader.c
@@ -78,7 +78,7 @@ S_folder_with_contents() {
     OutStream_Close(bar_out);
     DECREF(foo_out);
     DECREF(bar_out);
-    ZombieCharBuf *empty = ZCB_BLANK();
+    StackString *empty = SStr_BLANK();
     RAMFolder_Consolidate(folder, (CharBuf*)empty);
     return (Folder*)folder;
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestFSDirHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSDirHandle.c b/core/Lucy/Test/Store/TestFSDirHandle.c
index 93ef324..6f584d7 100644
--- a/core/Lucy/Test/Store/TestFSDirHandle.c
+++ b/core/Lucy/Test/Store/TestFSDirHandle.c
@@ -41,10 +41,10 @@ TestFSDH_new() {
 
 static void
 test_all(TestBatchRunner *runner) {
-    CharBuf  *foo           = (CharBuf*)ZCB_WRAP_STR("foo", 3);
-    CharBuf  *boffo         = (CharBuf*)ZCB_WRAP_STR("boffo", 5);
-    CharBuf  *foo_boffo     = (CharBuf*)ZCB_WRAP_STR("foo/boffo", 9);
-    CharBuf  *test_dir      = (CharBuf*)ZCB_WRAP_STR("_fsdir_test", 11);
+    CharBuf  *foo           = (CharBuf*)SSTR_WRAP_STR("foo", 3);
+    CharBuf  *boffo         = (CharBuf*)SSTR_WRAP_STR("boffo", 5);
+    CharBuf  *foo_boffo     = (CharBuf*)SSTR_WRAP_STR("foo/boffo", 9);
+    CharBuf  *test_dir      = (CharBuf*)SSTR_WRAP_STR("_fsdir_test", 11);
     FSFolder *folder        = FSFolder_new(test_dir);
     bool      saw_foo       = false;
     bool      saw_boffo     = false;

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestFSFileHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSFileHandle.c b/core/Lucy/Test/Store/TestFSFileHandle.c
index 7a1c22a..c43d555 100644
--- a/core/Lucy/Test/Store/TestFSFileHandle.c
+++ b/core/Lucy/Test/Store/TestFSFileHandle.c
@@ -42,7 +42,7 @@ static void
 test_open(TestBatchRunner *runner) {
 
     FSFileHandle *fh;
-    CharBuf *test_filename = (CharBuf*)ZCB_WRAP_STR("_fstest", 7);
+    CharBuf *test_filename = (CharBuf*)SSTR_WRAP_STR("_fstest", 7);
 
     remove((char*)CB_Get_Ptr8(test_filename));
 
@@ -108,7 +108,7 @@ test_Read_Write(TestBatchRunner *runner) {
     const char *bar = "bar";
     char buffer[12];
     char *buf = buffer;
-    CharBuf *test_filename = (CharBuf*)ZCB_WRAP_STR("_fstest", 7);
+    CharBuf *test_filename = (CharBuf*)SSTR_WRAP_STR("_fstest", 7);
 
     remove((char*)CB_Get_Ptr8(test_filename));
     fh = FSFH_open(test_filename,
@@ -162,7 +162,7 @@ test_Read_Write(TestBatchRunner *runner) {
 
 static void
 test_Close(TestBatchRunner *runner) {
-    CharBuf *test_filename = (CharBuf*)ZCB_WRAP_STR("_fstest", 7);
+    CharBuf *test_filename = (CharBuf*)SSTR_WRAP_STR("_fstest", 7);
     FSFileHandle *fh;
 
     remove((char*)CB_Get_Ptr8(test_filename));
@@ -200,7 +200,7 @@ test_Close(TestBatchRunner *runner) {
 
 static void
 test_Window(TestBatchRunner *runner) {
-    CharBuf *test_filename = (CharBuf*)ZCB_WRAP_STR("_fstest", 7);
+    CharBuf *test_filename = (CharBuf*)SSTR_WRAP_STR("_fstest", 7);
     FSFileHandle *fh;
     FileWindow *window = FileWindow_new();
     FileWindowIVARS *const window_ivars = FileWindow_IVARS(window);

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestFSFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSFolder.c b/core/Lucy/Test/Store/TestFSFolder.c
index b04832e..6ad6b51 100644
--- a/core/Lucy/Test/Store/TestFSFolder.c
+++ b/core/Lucy/Test/Store/TestFSFolder.c
@@ -57,7 +57,7 @@ TestFSFolder_new() {
 static Folder*
 S_set_up() {
     rmdir("_fstest");
-    CharBuf  *test_dir = (CharBuf*)ZCB_WRAP_STR("_fstest", 7);
+    CharBuf  *test_dir = (CharBuf*)SSTR_WRAP_STR("_fstest", 7);
     FSFolder *folder = FSFolder_new(test_dir);
     FSFolder_Initialize(folder);
     if (!FSFolder_Check(folder)) {
@@ -79,7 +79,7 @@ S_tear_down() {
 static void
 test_Initialize_and_Check(TestBatchRunner *runner) {
     rmdir("_fstest");
-    CharBuf  *test_dir = (CharBuf*)ZCB_WRAP_STR("_fstest", 7);
+    CharBuf  *test_dir = (CharBuf*)SSTR_WRAP_STR("_fstest", 7);
     FSFolder *folder   = FSFolder_new(test_dir);
     TEST_FALSE(runner, FSFolder_Check(folder),
                "Check() returns false when folder dir doesn't exist");
@@ -95,9 +95,9 @@ static void
 test_protect_symlinks(TestBatchRunner *runner) {
 #ifdef ENABLE_SYMLINK_TESTS
     FSFolder *folder    = (FSFolder*)S_set_up();
-    CharBuf  *foo       = (CharBuf*)ZCB_WRAP_STR("foo", 3);
-    CharBuf  *bar       = (CharBuf*)ZCB_WRAP_STR("bar", 3);
-    CharBuf  *foo_boffo = (CharBuf*)ZCB_WRAP_STR("foo/boffo", 9);
+    CharBuf  *foo       = (CharBuf*)SSTR_WRAP_STR("foo", 3);
+    CharBuf  *bar       = (CharBuf*)SSTR_WRAP_STR("bar", 3);
+    CharBuf  *foo_boffo = (CharBuf*)SSTR_WRAP_STR("foo/boffo", 9);
 
     FSFolder_MkDir(folder, foo);
     FSFolder_MkDir(folder, bar);
@@ -152,14 +152,14 @@ void
 test_disallow_updir(TestBatchRunner *runner) {
     FSFolder *outer_folder = (FSFolder*)S_set_up();
 
-    CharBuf *foo = (CharBuf*)ZCB_WRAP_STR("foo", 3);
-    CharBuf *bar = (CharBuf*)ZCB_WRAP_STR("bar", 3);
+    CharBuf *foo = (CharBuf*)SSTR_WRAP_STR("foo", 3);
+    CharBuf *bar = (CharBuf*)SSTR_WRAP_STR("bar", 3);
     FSFolder_MkDir(outer_folder, foo);
     FSFolder_MkDir(outer_folder, bar);
 
-    CharBuf *inner_path = (CharBuf*)ZCB_WRAP_STR("_fstest/foo", 11);
+    CharBuf *inner_path = (CharBuf*)SSTR_WRAP_STR("_fstest/foo", 11);
     FSFolder *foo_folder = FSFolder_new(inner_path);
-    CharBuf *up_bar = (CharBuf*)ZCB_WRAP_STR("../bar", 6);
+    CharBuf *up_bar = (CharBuf*)SSTR_WRAP_STR("../bar", 6);
     TEST_FALSE(runner, FSFolder_Exists(foo_folder, up_bar),
                "up-dirs are inaccessible.");
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestFileHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFileHandle.c b/core/Lucy/Test/Store/TestFileHandle.c
index 8e5e4d8..862bdb1 100644
--- a/core/Lucy/Test/Store/TestFileHandle.c
+++ b/core/Lucy/Test/Store/TestFileHandle.c
@@ -38,7 +38,7 @@ S_no_op_method(const void *vself) {
 
 static FileHandle*
 S_new_filehandle() {
-    ZombieCharBuf *klass = ZCB_WRAP_STR("TestFileHandle", 14);
+    StackString *klass = SSTR_WRAP_STR("TestFileHandle", 14);
     FileHandle *fh;
     VTable *vtable = VTable_fetch_vtable((CharBuf*)klass);
     if (!vtable) {
@@ -54,7 +54,7 @@ TestFH_Run_IMP(TestFileHandle *self, TestBatchRunner *runner) {
     TestBatchRunner_Plan(runner, (TestBatch*)self, 2);
 
     FileHandle    *fh    = S_new_filehandle();
-    ZombieCharBuf *foo   = ZCB_WRAP_STR("foo", 3);
+    StackString *foo   = SSTR_WRAP_STR("foo", 3);
 
     TEST_TRUE(runner, CB_Equals_Str(FH_Get_Path(fh), "", 0), "Get_Path");
     FH_Set_Path(fh, (CharBuf*)foo);

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestFolderCommon.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFolderCommon.c b/core/Lucy/Test/Store/TestFolderCommon.c
index f1a89a7..db67025 100644
--- a/core/Lucy/Test/Store/TestFolderCommon.c
+++ b/core/Lucy/Test/Store/TestFolderCommon.c
@@ -137,7 +137,7 @@ test_Local_Find_Folder(TestBatchRunner *runner, set_up_t set_up,
     local = Folder_Local_Find_Folder(folder, nope);
     TEST_TRUE(runner, local == NULL, "Non-existent entry yields NULL");
 
-    ZombieCharBuf *empty = ZCB_BLANK();
+    StackString *empty = SStr_BLANK();
     local = Folder_Local_Find_Folder(folder, (CharBuf*)empty);
     TEST_TRUE(runner, local == NULL, "Empty string yields NULL");
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestInStream.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestInStream.c b/core/Lucy/Test/Store/TestInStream.c
index 0a137d4..c530e21 100644
--- a/core/Lucy/Test/Store/TestInStream.c
+++ b/core/Lucy/Test/Store/TestInStream.c
@@ -96,8 +96,8 @@ test_refill(TestBatchRunner *runner) {
 
 static void
 test_Clone_and_Reopen(TestBatchRunner *runner) {
-    ZombieCharBuf *foo       = ZCB_WRAP_STR("foo", 3);
-    ZombieCharBuf *bar       = ZCB_WRAP_STR("bar", 3);
+    StackString *foo       = SSTR_WRAP_STR("foo", 3);
+    StackString *bar       = SSTR_WRAP_STR("bar", 3);
     RAMFile       *file      = RAMFile_new(NULL, false);
     OutStream     *outstream = OutStream_open((Obj*)file);
     RAMFileHandle *fh;

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestRAMDirHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMDirHandle.c b/core/Lucy/Test/Store/TestRAMDirHandle.c
index 70953d9..41de753 100644
--- a/core/Lucy/Test/Store/TestRAMDirHandle.c
+++ b/core/Lucy/Test/Store/TestRAMDirHandle.c
@@ -33,9 +33,9 @@ TestRAMDH_new() {
 static void
 test_all(TestBatchRunner *runner) {
     RAMFolder *folder        = RAMFolder_new(NULL);
-    CharBuf   *foo           = (CharBuf*)ZCB_WRAP_STR("foo", 3);
-    CharBuf   *boffo         = (CharBuf*)ZCB_WRAP_STR("boffo", 5);
-    CharBuf   *foo_boffo     = (CharBuf*)ZCB_WRAP_STR("foo/boffo", 9);
+    CharBuf   *foo           = (CharBuf*)SSTR_WRAP_STR("foo", 3);
+    CharBuf   *boffo         = (CharBuf*)SSTR_WRAP_STR("boffo", 5);
+    CharBuf   *foo_boffo     = (CharBuf*)SSTR_WRAP_STR("foo/boffo", 9);
     bool       saw_foo       = false;
     bool       saw_boffo     = false;
     bool       foo_was_dir   = false;

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Store/TestRAMFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMFolder.c b/core/Lucy/Test/Store/TestRAMFolder.c
index 3252046..eaf52a2 100644
--- a/core/Lucy/Test/Store/TestRAMFolder.c
+++ b/core/Lucy/Test/Store/TestRAMFolder.c
@@ -139,7 +139,7 @@ test_Local_Find_Folder(TestBatchRunner *runner) {
     local = (RAMFolder*)RAMFolder_Local_Find_Folder(folder, nope);
     TEST_TRUE(runner, local == NULL, "Non-existent entry yields NULL");
 
-    ZombieCharBuf *empty = ZCB_BLANK();
+    StackString *empty = SStr_BLANK();
     local = (RAMFolder*)RAMFolder_Local_Find_Folder(folder, (CharBuf*)empty);
     TEST_TRUE(runner, local == NULL, "Empty string yields NULL");
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/TestSchema.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/TestSchema.c b/core/Lucy/Test/TestSchema.c
index f601ca0..1c372e0 100644
--- a/core/Lucy/Test/TestSchema.c
+++ b/core/Lucy/Test/TestSchema.c
@@ -42,7 +42,7 @@ TestSchema_init(TestSchema *self, bool use_alt_arch) {
 
     Schema_init((Schema*)self);
     FullTextType_Set_Highlightable(type, true);
-    CharBuf *content = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf *content = (CharBuf*)SSTR_WRAP_STR("content", 7);
     TestSchema_Spec_Field(self, content, (FieldType*)type);
     DECREF(type);
     DECREF(tokenizer);
@@ -70,7 +70,7 @@ test_Equals(TestBatchRunner *runner) {
     TestSchema *schema = TestSchema_new(false);
     TestSchema *arch_differs = TestSchema_new(true);
     TestSchema *spec_differs = TestSchema_new(false);
-    CharBuf    *content      = (CharBuf*)ZCB_WRAP_STR("content", 7);
+    CharBuf    *content      = (CharBuf*)SSTR_WRAP_STR("content", 7);
     FullTextType *type = (FullTextType*)TestSchema_Fetch_Type(spec_differs,
                                                               content);
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/TestUtils.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/TestUtils.c b/core/Lucy/Test/TestUtils.c
index a38070d..fc64a68 100644
--- a/core/Lucy/Test/TestUtils.c
+++ b/core/Lucy/Test/TestUtils.c
@@ -76,14 +76,14 @@ TestUtils_make_poly_query(uint32_t boolop, ...) {
 
 TermQuery*
 TestUtils_make_term_query(const char *field, const char *term) {
-    CharBuf *field_cb = (CharBuf*)ZCB_WRAP_STR(field, strlen(field));
-    CharBuf *term_cb  = (CharBuf*)ZCB_WRAP_STR(term, strlen(term));
+    CharBuf *field_cb = (CharBuf*)SSTR_WRAP_STR(field, strlen(field));
+    CharBuf *term_cb  = (CharBuf*)SSTR_WRAP_STR(term, strlen(term));
     return TermQuery_new((CharBuf*)field_cb, (Obj*)term_cb);
 }
 
 PhraseQuery*
 TestUtils_make_phrase_query(const char *field, ...) {
-    CharBuf *field_cb = (CharBuf*)ZCB_WRAP_STR(field, strlen(field));
+    CharBuf *field_cb = (CharBuf*)SSTR_WRAP_STR(field, strlen(field));
     va_list args;
     VArray *terms = VA_new(0);
     PhraseQuery *query;
@@ -102,9 +102,9 @@ TestUtils_make_phrase_query(const char *field, ...) {
 
 LeafQuery*
 TestUtils_make_leaf_query(const char *field, const char *term) {
-    CharBuf *term_cb  = (CharBuf*)ZCB_WRAP_STR(term, strlen(term));
+    CharBuf *term_cb  = (CharBuf*)SSTR_WRAP_STR(term, strlen(term));
     CharBuf *field_cb = field
-                        ? (CharBuf*)ZCB_WRAP_STR(field, strlen(field))
+                        ? (CharBuf*)SSTR_WRAP_STR(field, strlen(field))
                         : NULL;
     return LeafQuery_new(field_cb, term_cb);
 }
@@ -120,9 +120,9 @@ RangeQuery*
 TestUtils_make_range_query(const char *field, const char *lower_term,
                            const char *upper_term, bool include_lower,
                            bool include_upper) {
-    CharBuf *f     = (CharBuf*)ZCB_WRAP_STR(field, strlen(field));
-    CharBuf *lterm = (CharBuf*)ZCB_WRAP_STR(lower_term, strlen(lower_term));
-    CharBuf *uterm = (CharBuf*)ZCB_WRAP_STR(upper_term, strlen(upper_term));
+    CharBuf *f     = (CharBuf*)SSTR_WRAP_STR(field, strlen(field));
+    CharBuf *lterm = (CharBuf*)SSTR_WRAP_STR(lower_term, strlen(lower_term));
+    CharBuf *uterm = (CharBuf*)SSTR_WRAP_STR(upper_term, strlen(upper_term));
     return RangeQuery_new(f, (Obj*)lterm, (Obj*)uterm, include_lower,
                           include_upper);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Util/TestIndexFileNames.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Util/TestIndexFileNames.c b/core/Lucy/Test/Util/TestIndexFileNames.c
index a25fc18..8003026 100644
--- a/core/Lucy/Test/Util/TestIndexFileNames.c
+++ b/core/Lucy/Test/Util/TestIndexFileNames.c
@@ -29,51 +29,51 @@ TestIxFileNames_new() {
 
 static void
 test_local_part(TestBatchRunner *runner) {
-    ZombieCharBuf *source = ZCB_BLANK();
-    ZombieCharBuf *got    = ZCB_BLANK();
+    StackString *source = SStr_BLANK();
+    StackString *got    = SStr_BLANK();
 
     got = IxFileNames_local_part((CharBuf*)source, got);
-    TEST_TRUE(runner, ZCB_Equals(got, (Obj*)source), "simple name");
+    TEST_TRUE(runner, SStr_Equals(got, (Obj*)source), "simple name");
 
-    ZCB_Assign_Str(source, "foo.txt", 7);
+    SStr_Assign_Str(source, "foo.txt", 7);
     got = IxFileNames_local_part((CharBuf*)source, got);
-    TEST_TRUE(runner, ZCB_Equals(got, (Obj*)source), "name with extension");
+    TEST_TRUE(runner, SStr_Equals(got, (Obj*)source), "name with extension");
 
-    ZCB_Assign_Str(source, "/foo", 4);
+    SStr_Assign_Str(source, "/foo", 4);
     got = IxFileNames_local_part((CharBuf*)source, got);
-    TEST_TRUE(runner, ZCB_Equals_Str(got, "foo", 3), "strip leading slash");
+    TEST_TRUE(runner, SStr_Equals_Str(got, "foo", 3), "strip leading slash");
 
-    ZCB_Assign_Str(source, "/foo/", 5);
+    SStr_Assign_Str(source, "/foo/", 5);
     got = IxFileNames_local_part((CharBuf*)source, got);
-    TEST_TRUE(runner, ZCB_Equals_Str(got, "foo", 3), "strip trailing slash");
+    TEST_TRUE(runner, SStr_Equals_Str(got, "foo", 3), "strip trailing slash");
 
-    ZCB_Assign_Str(source, "foo/bar\\ ", 9);
+    SStr_Assign_Str(source, "foo/bar\\ ", 9);
     got = IxFileNames_local_part((CharBuf*)source, got);
-    TEST_TRUE(runner, ZCB_Equals_Str(got, "bar\\ ", 5),
+    TEST_TRUE(runner, SStr_Equals_Str(got, "bar\\ ", 5),
               "Include garbage like backslashes and spaces");
 
-    ZCB_Assign_Str(source, "foo/bar/baz.txt", 15);
+    SStr_Assign_Str(source, "foo/bar/baz.txt", 15);
     got = IxFileNames_local_part((CharBuf*)source, got);
-    TEST_TRUE(runner, ZCB_Equals_Str(got, "baz.txt", 7), "find last component");
+    TEST_TRUE(runner, SStr_Equals_Str(got, "baz.txt", 7), "find last component");
 }
 
 static void
 test_extract_gen(TestBatchRunner *runner) {
-    ZombieCharBuf *source = ZCB_WRAP_STR("", 0);
+    StackString *source = SSTR_WRAP_STR("", 0);
 
-    ZCB_Assign_Str(source, "seg_9", 5);
+    SStr_Assign_Str(source, "seg_9", 5);
     TEST_TRUE(runner, IxFileNames_extract_gen((CharBuf*)source) == 9,
               "extract_gen");
 
-    ZCB_Assign_Str(source, "seg_9/", 6);
+    SStr_Assign_Str(source, "seg_9/", 6);
     TEST_TRUE(runner, IxFileNames_extract_gen((CharBuf*)source) == 9,
               "deal with trailing slash");
 
-    ZCB_Assign_Str(source, "seg_9_8", 7);
+    SStr_Assign_Str(source, "seg_9_8", 7);
     TEST_TRUE(runner, IxFileNames_extract_gen((CharBuf*)source) == 9,
               "Only go past first underscore");
 
-    ZCB_Assign_Str(source, "snapshot_5.json", 15);
+    SStr_Assign_Str(source, "snapshot_5.json", 15);
     TEST_TRUE(runner, IxFileNames_extract_gen((CharBuf*)source) == 5,
               "Deal with file suffix");
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Test/Util/TestJson.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Util/TestJson.c b/core/Lucy/Test/Util/TestJson.c
index 67a8d68..f36361e 100644
--- a/core/Lucy/Test/Util/TestJson.c
+++ b/core/Lucy/Test/Util/TestJson.c
@@ -199,7 +199,7 @@ test_spew_and_slurp(TestBatchRunner *runner) {
     Obj *dump = S_make_dump();
     Folder *folder = (Folder*)RAMFolder_new(NULL);
 
-    CharBuf *foo = (CharBuf*)ZCB_WRAP_STR("foo", 3);
+    CharBuf *foo = (CharBuf*)SSTR_WRAP_STR("foo", 3);
     bool result = Json_spew_json(dump, folder, foo);
     TEST_TRUE(runner, result, "spew_json returns true on success");
     TEST_TRUE(runner, Folder_Exists(folder, foo),
@@ -217,14 +217,14 @@ test_spew_and_slurp(TestBatchRunner *runner) {
               "Failed spew_json sets Err_error");
 
     Err_set_error(NULL);
-    CharBuf *bar = (CharBuf*)ZCB_WRAP_STR("bar", 3);
+    CharBuf *bar = (CharBuf*)SSTR_WRAP_STR("bar", 3);
     got = Json_slurp_json(folder, bar);
     TEST_TRUE(runner, got == NULL,
               "slurp_json returns NULL when file doesn't exist");
     TEST_TRUE(runner, Err_get_error() != NULL,
               "Failed slurp_json sets Err_error");
 
-    CharBuf *boffo = (CharBuf*)ZCB_WRAP_STR("boffo", 5);
+    CharBuf *boffo = (CharBuf*)SSTR_WRAP_STR("boffo", 5);
 
     FileHandle *fh
         = Folder_Open_FileHandle(folder, boffo, FH_CREATE | FH_WRITE_ONLY);
@@ -245,7 +245,7 @@ test_spew_and_slurp(TestBatchRunner *runner) {
 
 static void
 S_verify_bad_syntax(TestBatchRunner *runner, const char *bad, const char *mess) {
-    ZombieCharBuf *has_errors = ZCB_WRAP_STR(bad, strlen(bad));
+    StackString *has_errors = SSTR_WRAP_STR(bad, strlen(bad));
     Err_set_error(NULL);
     Obj *not_json = Json_from_json((CharBuf*)has_errors);
     TEST_TRUE(runner, not_json == NULL, "from_json returns NULL: %s", mess);

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Util/IndexFileNames.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Util/IndexFileNames.c b/core/Lucy/Util/IndexFileNames.c
index e4d2872..8740655 100644
--- a/core/Lucy/Util/IndexFileNames.c
+++ b/core/Lucy/Util/IndexFileNames.c
@@ -51,41 +51,41 @@ IxFileNames_latest_snapshot(Folder *folder) {
 
 uint64_t
 IxFileNames_extract_gen(const CharBuf *name) {
-    ZombieCharBuf *num_string = ZCB_WRAP(name);
+    StackString *num_string = SSTR_WRAP(name);
 
     // Advance past first underscore.  Bail if we run out of string or if we
     // encounter a NULL.
     while (1) {
-        uint32_t code_point = ZCB_Nibble(num_string);
+        uint32_t code_point = SStr_Nibble(num_string);
         if (code_point == 0) { return 0; }
         else if (code_point == '_') { break; }
     }
 
-    return (uint64_t)ZCB_BaseX_To_I64(num_string, 36);
+    return (uint64_t)SStr_BaseX_To_I64(num_string, 36);
 }
 
-ZombieCharBuf*
-IxFileNames_local_part(const CharBuf *path, ZombieCharBuf *target) {
-    ZombieCharBuf *scratch = ZCB_WRAP(path);
+StackString*
+IxFileNames_local_part(const CharBuf *path, StackString *target) {
+    StackString *scratch = SSTR_WRAP(path);
     size_t local_part_start = CB_Length(path);
     uint32_t code_point;
 
-    ZCB_Assign(target, path);
+    SStr_Assign(target, path);
 
     // Trim trailing slash.
-    while (ZCB_Code_Point_From(target, 1) == '/') {
-        ZCB_Chop(target, 1);
-        ZCB_Chop(scratch, 1);
+    while (SStr_Code_Point_From(target, 1) == '/') {
+        SStr_Chop(target, 1);
+        SStr_Chop(scratch, 1);
         local_part_start--;
     }
 
     // Substring should start after last slash.
-    while (0 != (code_point = ZCB_Code_Point_From(scratch, 1))) {
+    while (0 != (code_point = SStr_Code_Point_From(scratch, 1))) {
         if (code_point == '/') {
-            ZCB_Nip(target, local_part_start);
+            SStr_Nip(target, local_part_start);
             break;
         }
-        ZCB_Chop(scratch, 1);
+        SStr_Chop(scratch, 1);
         local_part_start--;
     }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Util/IndexFileNames.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Util/IndexFileNames.cfh b/core/Lucy/Util/IndexFileNames.cfh
index 2286f66..d115826 100644
--- a/core/Lucy/Util/IndexFileNames.cfh
+++ b/core/Lucy/Util/IndexFileNames.cfh
@@ -42,8 +42,8 @@ inert class Lucy::Util::IndexFileNames cnick IxFileNames {
      * @param target The target string to assign to.
      * @return target, allowing an assignment idiom.
      */
-    inert incremented ZombieCharBuf*
-    local_part(const CharBuf *path, ZombieCharBuf *target);
+    inert incremented StackString*
+    local_part(const CharBuf *path, StackString *target);
 }
 
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/core/Lucy/Util/Json.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Util/Json.c b/core/Lucy/Util/Json.c
index 8a2c22f..e6843d6 100644
--- a/core/Lucy/Util/Json.c
+++ b/core/Lucy/Util/Json.c
@@ -177,9 +177,9 @@ S_append_json_string(Obj *dump, CharBuf *json) {
     CB_Cat_Trusted_Str(json, "\"", 1);
 
     // Process string data.
-    ZombieCharBuf *iterator = ZCB_WRAP((CharBuf*)dump);
-    while (ZCB_Get_Size(iterator)) {
-        uint32_t code_point = ZCB_Nibble(iterator);
+    StackString *iterator = SSTR_WRAP((CharBuf*)dump);
+    while (SStr_Get_Size(iterator)) {
+        uint32_t code_point = SStr_Nibble(iterator);
         if (code_point > 127) {
             // There is no need to escape any high characters, including those
             // above the BMP, as we assume that the destination channel can
@@ -680,7 +680,7 @@ S_set_error(CharBuf *mess, char *json, char *limit, int line,
         const char *end = StrHelp_back_utf8_char(json + 32, json);
         len = end - json;
     }
-    ZombieCharBuf *snippet = ZCB_WRAP_STR(json, len);
+    StackString *snippet = SSTR_WRAP_STR(json, len);
     S_append_json_string((Obj*)snippet, mess);
 
     // Set Err_error.

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/perl/buildlib/Lucy/Build/Binding/Misc.pm
----------------------------------------------------------------------
diff --git a/perl/buildlib/Lucy/Build/Binding/Misc.pm b/perl/buildlib/Lucy/Build/Binding/Misc.pm
index 947d97d..fec0a9a 100644
--- a/perl/buildlib/Lucy/Build/Binding/Misc.pm
+++ b/perl/buildlib/Lucy/Build/Binding/Misc.pm
@@ -140,8 +140,8 @@ STORABLE_thaw(blank_obj, cloning, serialized_sv)
 PPCODE:
 {
     char *class_name = HvNAME(SvSTASH(SvRV(blank_obj)));
-    cfish_ZombieCharBuf *klass
-        = CFISH_ZCB_WRAP_STR(class_name, strlen(class_name));
+    cfish_StackString *klass
+        = CFISH_SStr_WRAP_STR(class_name, strlen(class_name));
     cfish_VTable *vtable
         = (cfish_VTable*)cfish_VTable_singleton((cfish_CharBuf*)klass, NULL);
     STRLEN len;

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/perl/xs/Lucy/Index/DocReader.c
----------------------------------------------------------------------
diff --git a/perl/xs/Lucy/Index/DocReader.c b/perl/xs/Lucy/Index/DocReader.c
index d2b8e3d..e191d23 100644
--- a/perl/xs/Lucy/Index/DocReader.c
+++ b/perl/xs/Lucy/Index/DocReader.c
@@ -61,9 +61,9 @@ LUCY_DefDocReader_Fetch_Doc_IMP(lucy_DefaultDocReader *self, int32_t doc_id) {
         *SvEND(field_name_sv) = '\0';
 
         // Find the Field's FieldType.
-        cfish_ZombieCharBuf *field_name_zcb
-            = CFISH_ZCB_WRAP_STR(field_name_ptr, field_name_len);
-        CFISH_ZCB_Assign_Str(field_name_zcb, field_name_ptr, field_name_len);
+        cfish_StackString *field_name_zcb
+            = CFISH_SStr_WRAP_STR(field_name_ptr, field_name_len);
+        CFISH_SStr_Assign_Str(field_name_zcb, field_name_ptr, field_name_len);
         type = LUCY_Schema_Fetch_Type(schema, (cfish_CharBuf*)field_name_zcb);
 
         // Read the field value.

http://git-wip-us.apache.org/repos/asf/lucy/blob/a7926f49/perl/xs/Lucy/Index/Inverter.c
----------------------------------------------------------------------
diff --git a/perl/xs/Lucy/Index/Inverter.c b/perl/xs/Lucy/Index/Inverter.c
index 3fcb14f..3c824d5 100644
--- a/perl/xs/Lucy/Index/Inverter.c
+++ b/perl/xs/Lucy/Index/Inverter.c
@@ -50,7 +50,7 @@ S_fetch_entry(lucy_Inverter *self, HE *hash_entry) {
         }
     }
 
-    cfish_ZombieCharBuf *field = CFISH_ZCB_WRAP_STR(key, key_len);
+    cfish_StackString *field = CFISH_SStr_WRAP_STR(key, key_len);
     int32_t field_num
         = LUCY_Seg_Field_Num(ivars->segment, (cfish_CharBuf*)field);
     if (!field_num) {


Mime
View raw message