You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2015/10/30 15:52:05 UTC

[6/8] lucy git commit: Don't cast stack strings to String

Don't cast stack strings to String

The old StackString class is gone.


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

Branch: refs/heads/master
Commit: 333119dd1308083a34d66a6ace74ae2aa628baa5
Parents: 0cf2343
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Oct 24 16:49:21 2015 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Oct 24 16:49:21 2015 +0200

----------------------------------------------------------------------
 core/Lucy/Store/CompoundFileReader.c          |  8 ++--
 core/Lucy/Store/CompoundFileWriter.c          | 12 +++---
 core/Lucy/Store/FSFolder.c                    |  2 +-
 core/Lucy/Store/Lock.c                        |  2 +-
 core/Lucy/Store/SharedLock.c                  |  4 +-
 core/Lucy/Test/Analysis/TestNormalizer.c      |  4 +-
 core/Lucy/Test/Analysis/TestPolyAnalyzer.c    |  6 +--
 core/Lucy/Test/Analysis/TestSnowballStemmer.c |  4 +-
 core/Lucy/Test/Highlight/TestHighlighter.c    | 49 +++++++++++-----------
 core/Lucy/Test/Index/TestSnapshot.c           | 12 +++---
 core/Lucy/Test/Search/TestQueryParserLogic.c  |  2 +-
 core/Lucy/Test/Store/TestFSDirHandle.c        |  8 ++--
 core/Lucy/Test/Store/TestFSFileHandle.c       |  8 ++--
 core/Lucy/Test/Store/TestFSFolder.c           | 20 ++++-----
 core/Lucy/Test/Store/TestRAMDirHandle.c       |  6 +--
 core/Lucy/Test/TestSchema.c                   |  4 +-
 core/Lucy/Test/TestUtils.c                    | 18 ++++----
 core/Lucy/Test/Util/TestJson.c                |  6 +--
 18 files changed, 86 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Store/CompoundFileReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Store/CompoundFileReader.c b/core/Lucy/Store/CompoundFileReader.c
index 1c59f4f..db24fa1 100644
--- a/core/Lucy/Store/CompoundFileReader.c
+++ b/core/Lucy/Store/CompoundFileReader.c
@@ -38,7 +38,7 @@ CFReader_open(Folder *folder) {
 CompoundFileReader*
 CFReader_do_open(CompoundFileReader *self, Folder *folder) {
     CompoundFileReaderIVARS *const ivars = CFReader_IVARS(self);
-    String *cfmeta_file = (String*)SSTR_WRAP_C("cfmeta.json");
+    String *cfmeta_file = SSTR_WRAP_C("cfmeta.json");
     Hash *metadata = (Hash*)Json_slurp_json((Folder*)folder, cfmeta_file);
     Err *error = NULL;
 
@@ -75,7 +75,7 @@ CFReader_do_open(CompoundFileReader *self, Folder *folder) {
     }
 
     // Open an instream which we'll clone over and over.
-    String *cf_file = (String*)SSTR_WRAP_C("cf.dat");
+    String *cf_file = SSTR_WRAP_C("cf.dat");
     ivars->instream = Folder_Open_In(folder, cf_file);
     if (!ivars->instream) {
         ERR_ADD_FRAME(Err_get_error());
@@ -169,11 +169,11 @@ CFReader_Local_Delete_IMP(CompoundFileReader *self, String *name) {
         // Once the number of virtual files falls to 0, remove the compound
         // files.
         if (Hash_Get_Size(ivars->records) == 0) {
-            String *cf_file = (String*)SSTR_WRAP_C("cf.dat");
+            String *cf_file = SSTR_WRAP_C("cf.dat");
             if (!Folder_Delete(ivars->real_folder, cf_file)) {
                 return false;
             }
-            String *cfmeta_file = (String*)SSTR_WRAP_C("cfmeta.json");
+            String *cfmeta_file = SSTR_WRAP_C("cfmeta.json");
             if (!Folder_Delete(ivars->real_folder, cfmeta_file)) {
                 return false;
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Store/CompoundFileWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Store/CompoundFileWriter.c b/core/Lucy/Store/CompoundFileWriter.c
index 9389ba3..9cb496a 100644
--- a/core/Lucy/Store/CompoundFileWriter.c
+++ b/core/Lucy/Store/CompoundFileWriter.c
@@ -59,7 +59,7 @@ CFWriter_Destroy_IMP(CompoundFileWriter *self) {
 void
 CFWriter_Consolidate_IMP(CompoundFileWriter *self) {
     CompoundFileWriterIVARS *const ivars = CFWriter_IVARS(self);
-    String *cfmeta_file = (String*)SSTR_WRAP_C("cfmeta.json");
+    String *cfmeta_file = SSTR_WRAP_C("cfmeta.json");
     if (Folder_Exists(ivars->folder, cfmeta_file)) {
         THROW(ERR, "Merge already performed for %o",
               Folder_Get_Path(ivars->folder));
@@ -75,8 +75,8 @@ S_clean_up_old_temp_files(CompoundFileWriter *self,
                           CompoundFileWriterIVARS *ivars) {
     UNUSED_VAR(self);
     Folder *folder      = ivars->folder;
-    String *cfmeta_temp = (String*)SSTR_WRAP_C("cfmeta.json.temp");
-    String *cf_file     = (String*)SSTR_WRAP_C("cf.dat");
+    String *cfmeta_temp = SSTR_WRAP_C("cfmeta.json.temp");
+    String *cf_file     = SSTR_WRAP_C("cf.dat");
 
     if (Folder_Exists(folder, cf_file)) {
         if (!Folder_Delete(folder, cf_file)) {
@@ -98,7 +98,7 @@ S_do_consolidate(CompoundFileWriter *self, CompoundFileWriterIVARS *ivars) {
     Hash      *sub_files    = Hash_new(0);
     Vector    *files        = Folder_List(folder, NULL);
     Vector    *merged       = Vec_new(Vec_Get_Size(files));
-    String    *cf_file      = (String*)SSTR_WRAP_C("cf.dat");
+    String    *cf_file      = SSTR_WRAP_C("cf.dat");
     OutStream *outstream    = Folder_Open_Out(folder, (String*)cf_file);
     bool       rename_success;
 
@@ -143,8 +143,8 @@ S_do_consolidate(CompoundFileWriter *self, CompoundFileWriterIVARS *ivars) {
     }
 
     // Write metadata to cfmeta file.
-    String *cfmeta_temp = (String*)SSTR_WRAP_C("cfmeta.json.temp");
-    String *cfmeta_file = (String*)SSTR_WRAP_C("cfmeta.json");
+    String *cfmeta_temp = SSTR_WRAP_C("cfmeta.json.temp");
+    String *cfmeta_file = SSTR_WRAP_C("cfmeta.json");
     Json_spew_json((Obj*)metadata, (Folder*)ivars->folder, cfmeta_temp);
     rename_success = Folder_Rename(ivars->folder, cfmeta_temp, cfmeta_file);
     if (!rename_success) { RETHROW(INCREF(Err_get_error())); }

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Store/FSFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Store/FSFolder.c b/core/Lucy/Store/FSFolder.c
index 2ab1f35..6b1295a 100644
--- a/core/Lucy/Store/FSFolder.c
+++ b/core/Lucy/Store/FSFolder.c
@@ -256,7 +256,7 @@ FSFolder_Local_Find_Folder_IMP(FSFolder *self, String *name) {
         }
         // Try to open a CompoundFileReader. On failure, just use the
         // existing folder.
-        String *cfmeta_file = (String*)SSTR_WRAP_C("cfmeta.json");
+        String *cfmeta_file = SSTR_WRAP_C("cfmeta.json");
         if (Folder_Local_Exists(subfolder, cfmeta_file)) {
             CompoundFileReader *cf_reader = CFReader_open(subfolder);
             if (cf_reader) {

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Store/Lock.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Store/Lock.c b/core/Lucy/Store/Lock.c
index 9fe100e..82066a5 100644
--- a/core/Lucy/Store/Lock.c
+++ b/core/Lucy/Store/Lock.c
@@ -158,7 +158,7 @@ LFLock_Request_IMP(LockFileLock *self) {
     }
 
     // Create the "locks" subdirectory if necessary.
-    String *lock_dir_name = (String*)SSTR_WRAP_C("locks");
+    String *lock_dir_name = SSTR_WRAP_C("locks");
     if (!Folder_Exists(ivars->folder, lock_dir_name)) {
         if (!Folder_MkDir(ivars->folder, lock_dir_name)) {
             Err *mkdir_err = (Err*)CERTIFY(Err_get_error(), ERR);

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Store/SharedLock.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Store/SharedLock.c b/core/Lucy/Store/SharedLock.c
index 12c49c7..8d664f1 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);
 
-    String *lock_dir_name = (String*)SSTR_WRAP_C("locks");
+    String *lock_dir_name = SSTR_WRAP_C("locks");
     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);
 
-    String *lock_dir_name = (String*)SSTR_WRAP_C("locks");
+    String *lock_dir_name = SSTR_WRAP_C("locks");
     if (!Folder_Find_Folder(ivars->folder, lock_dir_name)) {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Analysis/TestNormalizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestNormalizer.c b/core/Lucy/Test/Analysis/TestNormalizer.c
index 92adbf4..c882546 100644
--- a/core/Lucy/Test/Analysis/TestNormalizer.c
+++ b/core/Lucy/Test/Analysis/TestNormalizer.c
@@ -39,8 +39,8 @@ static void
 test_Dump_Load_and_Equals(TestBatchRunner *runner) {
     Normalizer *normalizer[4];
 
-    String *NFC  = (String*)SSTR_WRAP_C("NFC");
-    String *NFKC = (String*)SSTR_WRAP_C("NFKC");
+    String *NFC  = SSTR_WRAP_C("NFC");
+    String *NFKC = SSTR_WRAP_C("NFKC");
 
     normalizer[0] = Normalizer_new(NFKC, true,  false);
     normalizer[1] = Normalizer_new(NFC,  true,  false);

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestPolyAnalyzer.c b/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
index 31bd76f..efb539c 100644
--- a/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
+++ b/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
@@ -41,8 +41,8 @@ test_Dump_Load_and_Equals(TestBatchRunner *runner) {
         return;
     }
 
-    String       *EN          = (String*)SSTR_WRAP_C("en");
-    String       *ES          = (String*)SSTR_WRAP_C("es");
+    String       *EN          = SSTR_WRAP_C("en");
+    String       *ES          = SSTR_WRAP_C("es");
     PolyAnalyzer *analyzer    = PolyAnalyzer_new(EN, NULL);
     PolyAnalyzer *other       = PolyAnalyzer_new(ES, NULL);
     Obj          *dump        = (Obj*)PolyAnalyzer_Dump(analyzer);
@@ -68,7 +68,7 @@ test_Dump_Load_and_Equals(TestBatchRunner *runner) {
 
 static void
 test_analysis(TestBatchRunner *runner) {
-    String             *EN          = (String*)SSTR_WRAP_C("en");
+    String             *EN          = SSTR_WRAP_C("en");
     String             *source_text = Str_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/333119dd/core/Lucy/Test/Analysis/TestSnowballStemmer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStemmer.c b/core/Lucy/Test/Analysis/TestSnowballStemmer.c
index 64bec15..329864d 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStemmer.c
+++ b/core/Lucy/Test/Analysis/TestSnowballStemmer.c
@@ -34,8 +34,8 @@ TestSnowStemmer_new() {
 
 static void
 test_Dump_Load_and_Equals(TestBatchRunner *runner) {
-    String *EN = (String*)SSTR_WRAP_C("en");
-    String *ES = (String*)SSTR_WRAP_C("es");
+    String *EN = SSTR_WRAP_C("en");
+    String *ES = SSTR_WRAP_C("es");
     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/333119dd/core/Lucy/Test/Highlight/TestHighlighter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHighlighter.c b/core/Lucy/Test/Highlight/TestHighlighter.c
index 3ae0687..21e040e 100644
--- a/core/Lucy/Test/Highlight/TestHighlighter.c
+++ b/core/Lucy/Test/Highlight/TestHighlighter.c
@@ -59,12 +59,12 @@ TestHighlighter_new() {
 
 static void
 test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
-    String *content = (String*)SSTR_WRAP_C("content");
+    String *content = SSTR_WRAP_C("content");
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 6);
     int32_t top;
     String *raw_excerpt;
 
-    String *field_val = (String *)SSTR_WRAP_C("Ook.  Urk.  Ick.  ");
+    String *field_val = SSTR_WRAP_C("Ook.  Urk.  Ick.  ");
     Vector *spans = Vec_new(1);
     Vec_Push(spans, (Obj*)Span_new(0, 18, 1.0f));
     HeatMap *heat_map = HeatMap_new(spans, 133);
@@ -95,7 +95,7 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
     DECREF(raw_excerpt);
     DECREF(heat_map);
 
-    field_val = (String *)SSTR_WRAP_C("Ook urk ick i.");
+    field_val = SSTR_WRAP_C("Ook urk ick i.");
     spans     = Vec_new(1);
     Vec_Push(spans, (Obj*)Span_new(12, 1, 1.0f));
     heat_map = HeatMap_new(spans, 133);
@@ -111,7 +111,7 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
     DECREF(heat_map);
     DECREF(raw_excerpt);
 
-    field_val = (String *)SSTR_WRAP_C("Urk.  Iz no good.");
+    field_val = SSTR_WRAP_C("Urk.  Iz no good.");
     spans     = Vec_new(1);
     Vec_Push(spans, (Obj*)Span_new(6, 2, 1.0f));
     heat_map = HeatMap_new(spans, 133);
@@ -129,7 +129,7 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
 
     // Words longer than excerpt len
 
-    field_val = (String *)SSTR_WRAP_C("abc/def/ghi/jkl/mno");
+    field_val = SSTR_WRAP_C("abc/def/ghi/jkl/mno");
 
     spans = Vec_new(1);
     Vec_Push(spans, (Obj*)Span_new(0, 3, 1.0f));
@@ -160,13 +160,13 @@ test_Raw_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
 
 static void
 test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query) {
-    String *content = (String*)SSTR_WRAP_C("content");
+    String *content = SSTR_WRAP_C("content");
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 3);
     String *highlighted;
 
     Vector *spans = Vec_new(1);
     Vec_Push(spans, (Obj*)Span_new(2, 1, 0.0f));
-    String *raw_excerpt = (String *)SSTR_WRAP_C("a b c");
+    String *raw_excerpt = SSTR_WRAP_C("a b c");
     highlighted = Highlighter_Highlight_Excerpt(highlighter, spans,
                                                 raw_excerpt, 0);
     TEST_TRUE(runner,
@@ -178,7 +178,7 @@ test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query)
     spans = Vec_new(2);
     Vec_Push(spans, (Obj*)Span_new(0, 1, 1.0f));
     Vec_Push(spans, (Obj*)Span_new(10, 10, 1.0f));
-    raw_excerpt = (String *)SSTR_WRAP_C(PHI);
+    raw_excerpt = SSTR_WRAP_C(PHI);
     highlighted = Highlighter_Highlight_Excerpt(highlighter, spans,
                                                 raw_excerpt, 0);
     TEST_TRUE(runner,
@@ -189,7 +189,7 @@ test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query)
 
     spans = Vec_new(1);
     Vec_Push(spans, (Obj*)Span_new(3, 1, 1.0f));
-    raw_excerpt = (String *)SSTR_WRAP_C(PHI " " PHI " " PHI);
+    raw_excerpt = SSTR_WRAP_C(PHI " " PHI " " PHI);
     highlighted = Highlighter_Highlight_Excerpt(highlighter, spans,
                                                 raw_excerpt, 1);
     TEST_TRUE(runner,
@@ -204,7 +204,7 @@ test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query)
     Vec_Push(spans, (Obj*)Span_new(2,  4, 1.0f));
     Vec_Push(spans, (Obj*)Span_new(8,  9, 1.0f));
     Vec_Push(spans, (Obj*)Span_new(8,  4, 1.0f));
-    raw_excerpt = (String *)SSTR_WRAP_C(PHI " Oook. Urk. Ick. " PHI);
+    raw_excerpt = SSTR_WRAP_C(PHI " Oook. Urk. Ick. " PHI);
     highlighted = Highlighter_Highlight_Excerpt(highlighter, spans,
                                                 raw_excerpt, 0);
     TEST_TRUE(runner,
@@ -221,7 +221,7 @@ test_Highlight_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query)
 static void
 test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
                     Hits *hits) {
-    String *content = (String*)SSTR_WRAP_C("content");
+    String *content = SSTR_WRAP_C("content");
     Highlighter *highlighter = Highlighter_new(searcher, query, content, 200);
 
     HitDoc *hit = Hits_Next(hits);
@@ -233,9 +233,9 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
               "highlighter tagged phrase and single term");
     DECREF(excerpt);
 
-    String *pre_tag = (String*)SSTR_WRAP_C("\x1B[1m");
+    String *pre_tag = SSTR_WRAP_C("\x1B[1m");
     Highlighter_Set_Pre_Tag(highlighter, pre_tag);
-    String *post_tag = (String*)SSTR_WRAP_C("\x1B[0m");
+    String *post_tag = SSTR_WRAP_C("\x1B[0m");
     Highlighter_Set_Post_Tag(highlighter, post_tag);
     excerpt = Highlighter_Create_Excerpt(highlighter, hit);
     TEST_TRUE(runner,
@@ -307,7 +307,7 @@ test_Create_Excerpt(TestBatchRunner *runner, Searcher *searcher, Obj *query,
               "specify field highlights correct field...");
     DECREF(excerpt);
     DECREF(highlighter);
-    String *alt = (String*)SSTR_WRAP_C("alt");
+    String *alt = SSTR_WRAP_C("alt");
     highlighter = Highlighter_new(searcher, query, alt, 200);
     excerpt = Highlighter_Create_Excerpt(highlighter, hit);
     TEST_FALSE(runner,
@@ -329,9 +329,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);
-    String *content = (String*)SSTR_WRAP_C("content");
+    String *content = SSTR_WRAP_C("content");
     Schema_Spec_Field(schema, content, (FieldType*)plain_type);
-    String *alt = (String*)SSTR_WRAP_C("alt");
+    String *alt = SSTR_WRAP_C("alt");
     Schema_Spec_Field(schema, alt, (FieldType*)dunked_type);
     DECREF(plain_type);
     DECREF(dunked_type);
@@ -341,22 +341,21 @@ test_highlighting(TestBatchRunner *runner) {
     Indexer *indexer = Indexer_new(schema, (Obj*)folder, NULL, 0);
 
     Doc *doc = Doc_new(NULL, 0);
-    String *string = (String *)SSTR_WRAP_C(TEST_STRING);
+    String *string = SSTR_WRAP_C(TEST_STRING);
     Doc_Store(doc, content, (Obj*)string);
     Indexer_Add_Doc(indexer, doc, 1.0f);
     DECREF(doc);
 
     doc = Doc_new(NULL, 0);
-    string = (String *)SSTR_WRAP_C("\"I see,\" said the blind man.");
+    string = SSTR_WRAP_C("\"I see,\" said the blind man.");
     Doc_Store(doc, content, (Obj*)string);
     Indexer_Add_Doc(indexer, doc, 1.0f);
     DECREF(doc);
 
     doc = Doc_new(NULL, 0);
-    string = (String *)SSTR_WRAP_C("x but not why or 2ee");
+    string = SSTR_WRAP_C("x but not why or 2ee");
     Doc_Store(doc, content, (Obj*)string);
-    string = (String *)SSTR_WRAP_C(TEST_STRING
-                                   " and extra stuff so it scores lower");
+    string = SSTR_WRAP_C(TEST_STRING " and extra stuff so it scores lower");
     Doc_Store(doc, alt, (Obj*)string);
     Indexer_Add_Doc(indexer, doc, 1.0f);
     DECREF(doc);
@@ -384,7 +383,7 @@ test_hl_selection(TestBatchRunner *runner) {
     StandardTokenizer *tokenizer = StandardTokenizer_new();
     FullTextType *plain_type = FullTextType_new((Analyzer*)tokenizer);
     FullTextType_Set_Highlightable(plain_type, true);
-    String *content = (String*)SSTR_WRAP_C("content");
+    String *content = SSTR_WRAP_C("content");
     Schema_Spec_Field(schema, content, (FieldType*)plain_type);
     DECREF(plain_type);
     DECREF(tokenizer);
@@ -407,7 +406,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);
-    String *string = (String *)SSTR_WRAP_C(test_string);
+    String *string = SSTR_WRAP_C(test_string);
     Doc_Store(doc, content, (Obj*)string);
     Indexer_Add_Doc(indexer, doc, 1.0f);
     DECREF(doc);
@@ -421,8 +420,8 @@ test_hl_selection(TestBatchRunner *runner) {
     Hits *hits = Searcher_Hits(searcher, query, 0, 10, NULL);
     HitDoc *hit = Hits_Next(hits);
     String *excerpt = Highlighter_Create_Excerpt(highlighter, hit);
-    String *mmm = (String*)SSTR_WRAP_C("MMM");
-    String *nnn = (String*)SSTR_WRAP_C("NNN");
+    String *mmm = SSTR_WRAP_C("MMM");
+    String *nnn = SSTR_WRAP_C("NNN");
     TEST_TRUE(runner, Str_Contains(excerpt, mmm) || Str_Contains(excerpt, nnn),
               "Sentence boundary algo doesn't chop terms");
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Index/TestSnapshot.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSnapshot.c b/core/Lucy/Test/Index/TestSnapshot.c
index e790206..bb86992 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();
-    String *foo = (String*)SSTR_WRAP_C("foo");
-    String *bar = (String*)SSTR_WRAP_C("bar");
+    String *foo = SSTR_WRAP_C("foo");
+    String *bar = SSTR_WRAP_C("bar");
 
     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);
-    String   *snap     = (String*)SSTR_WRAP_C("snap");
-    String   *crackle  = (String*)SSTR_WRAP_C("crackle");
+    String   *snap     = SSTR_WRAP_C("snap");
+    String   *crackle  = SSTR_WRAP_C("crackle");
 
     Snapshot_Write_File(snapshot, folder, snap);
     TEST_TRUE(runner, Str_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);
-    String   *snap     = (String*)SSTR_WRAP_C("snap");
-    String   *foo      = (String*)SSTR_WRAP_C("foo");
+    String   *snap     = SSTR_WRAP_C("snap");
+    String   *foo      = SSTR_WRAP_C("foo");
 
     Snapshot_Add_Entry(snapshot, foo);
     Snapshot_Write_File(snapshot, folder, snap);

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Search/TestQueryParserLogic.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestQueryParserLogic.c b/core/Lucy/Test/Search/TestQueryParserLogic.c
index d8a647b..874569c 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;
 
-    String *field = (String*)SSTR_WRAP_C("content");
+    String *field = SSTR_WRAP_C("content");
     for (i = 0, max = Vec_Get_Size(doc_set); i < max; i++) {
         Doc *doc = Doc_new(NULL, 0);
         Doc_Store(doc, field, Vec_Fetch(doc_set, i));

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Store/TestFSDirHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSDirHandle.c b/core/Lucy/Test/Store/TestFSDirHandle.c
index ae478e6..4be2b84 100644
--- a/core/Lucy/Test/Store/TestFSDirHandle.c
+++ b/core/Lucy/Test/Store/TestFSDirHandle.c
@@ -43,10 +43,10 @@ TestFSDH_new() {
 
 static void
 test_all(TestBatchRunner *runner) {
-    String   *foo           = (String*)SSTR_WRAP_C("foo");
-    String   *boffo         = (String*)SSTR_WRAP_C("boffo");
-    String   *foo_boffo     = (String*)SSTR_WRAP_C("foo/boffo");
-    String   *test_dir      = (String*)SSTR_WRAP_C("_fsdir_test");
+    String   *foo           = SSTR_WRAP_C("foo");
+    String   *boffo         = SSTR_WRAP_C("boffo");
+    String   *foo_boffo     = SSTR_WRAP_C("foo/boffo");
+    String   *test_dir      = SSTR_WRAP_C("_fsdir_test");
     FSFolder *folder        = FSFolder_new(test_dir);
     bool      saw_foo       = false;
     bool      saw_boffo     = false;

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Store/TestFSFileHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSFileHandle.c b/core/Lucy/Test/Store/TestFSFileHandle.c
index d156dc4..2e75f37 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;
-    String *test_filename = (String*)SSTR_WRAP_C("_fstest");
+    String *test_filename = SSTR_WRAP_C("_fstest");
 
     remove(Str_Get_Ptr8(test_filename));
 
@@ -108,7 +108,7 @@ test_Read_Write(TestBatchRunner *runner) {
     const char *bar = "bar";
     char buffer[12];
     char *buf = buffer;
-    String *test_filename = (String*)SSTR_WRAP_C("_fstest");
+    String *test_filename = SSTR_WRAP_C("_fstest");
 
     remove(Str_Get_Ptr8(test_filename));
     fh = FSFH_open(test_filename,
@@ -162,7 +162,7 @@ test_Read_Write(TestBatchRunner *runner) {
 
 static void
 test_Close(TestBatchRunner *runner) {
-    String *test_filename = (String*)SSTR_WRAP_C("_fstest");
+    String *test_filename = SSTR_WRAP_C("_fstest");
     FSFileHandle *fh;
 
     remove(Str_Get_Ptr8(test_filename));
@@ -199,7 +199,7 @@ test_Close(TestBatchRunner *runner) {
 
 static void
 test_Window(TestBatchRunner *runner) {
-    String *test_filename = (String*)SSTR_WRAP_C("_fstest");
+    String *test_filename = SSTR_WRAP_C("_fstest");
     FSFileHandle *fh;
     FileWindow *window = FileWindow_new();
     FileWindowIVARS *const window_ivars = FileWindow_IVARS(window);

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Store/TestFSFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSFolder.c b/core/Lucy/Test/Store/TestFSFolder.c
index f4b1c5f..22e3a2e 100644
--- a/core/Lucy/Test/Store/TestFSFolder.c
+++ b/core/Lucy/Test/Store/TestFSFolder.c
@@ -63,8 +63,8 @@ TestFSFolder_new() {
 static Folder*
 S_set_up() {
     rmdir("_fstest");
-    String   *test_dir = (String*)SSTR_WRAP_C("_fstest");
-    FSFolder *folder = FSFolder_new(test_dir);
+    String   *test_dir = SSTR_WRAP_C("_fstest");
+    FSFolder *folder   = FSFolder_new(test_dir);
     FSFolder_Initialize(folder);
     if (!FSFolder_Check(folder)) {
         RETHROW(INCREF(Err_get_error()));
@@ -89,7 +89,7 @@ S_tear_down() {
 static void
 test_Initialize_and_Check(TestBatchRunner *runner) {
     rmdir("_fstest");
-    String   *test_dir = (String*)SSTR_WRAP_C("_fstest");
+    String   *test_dir = SSTR_WRAP_C("_fstest");
     FSFolder *folder   = FSFolder_new(test_dir);
     TEST_FALSE(runner, FSFolder_Check(folder),
                "Check() returns false when folder dir doesn't exist");
@@ -105,9 +105,9 @@ static void
 test_protect_symlinks(TestBatchRunner *runner) {
 #ifdef ENABLE_SYMLINK_TESTS
     FSFolder *folder    = (FSFolder*)S_set_up();
-    String   *foo       = (String*)SSTR_WRAP_C("foo");
-    String   *bar       = (String*)SSTR_WRAP_C("bar");
-    String   *foo_boffo = (String*)SSTR_WRAP_C("foo/boffo");
+    String   *foo       = SSTR_WRAP_C("foo");
+    String   *bar       = SSTR_WRAP_C("bar");
+    String   *foo_boffo = SSTR_WRAP_C("foo/boffo");
 
     FSFolder_MkDir(folder, foo);
     FSFolder_MkDir(folder, bar);
@@ -158,14 +158,14 @@ void
 test_disallow_updir(TestBatchRunner *runner) {
     FSFolder *outer_folder = (FSFolder*)S_set_up();
 
-    String *foo = (String*)SSTR_WRAP_C("foo");
-    String *bar = (String*)SSTR_WRAP_C("bar");
+    String *foo = SSTR_WRAP_C("foo");
+    String *bar = SSTR_WRAP_C("bar");
     FSFolder_MkDir(outer_folder, foo);
     FSFolder_MkDir(outer_folder, bar);
 
-    String *inner_path = (String*)SSTR_WRAP_C("_fstest/foo");
+    String *inner_path = SSTR_WRAP_C("_fstest/foo");
     FSFolder *foo_folder = FSFolder_new(inner_path);
-    String *up_bar = (String*)SSTR_WRAP_C("../bar");
+    String *up_bar = SSTR_WRAP_C("../bar");
     TEST_FALSE(runner, FSFolder_Exists(foo_folder, up_bar),
                "up-dirs are inaccessible.");
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Store/TestRAMDirHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMDirHandle.c b/core/Lucy/Test/Store/TestRAMDirHandle.c
index 15ebae7..fc6292a 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);
-    String    *foo           = (String*)SSTR_WRAP_C("foo");
-    String    *boffo         = (String*)SSTR_WRAP_C("boffo");
-    String    *foo_boffo     = (String*)SSTR_WRAP_C("foo/boffo");
+    String    *foo           = SSTR_WRAP_C("foo");
+    String    *boffo         = SSTR_WRAP_C("boffo");
+    String    *foo_boffo     = SSTR_WRAP_C("foo/boffo");
     bool       saw_foo       = false;
     bool       saw_boffo     = false;
     bool       foo_was_dir   = false;

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/TestSchema.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/TestSchema.c b/core/Lucy/Test/TestSchema.c
index ae24751..1e1c3c1 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);
-    String *content = (String*)SSTR_WRAP_C("content");
+    String *content = SSTR_WRAP_C("content");
     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);
-    String     *content      = (String*)SSTR_WRAP_C("content");
+    String     *content      = SSTR_WRAP_C("content");
     FullTextType *type = (FullTextType*)TestSchema_Fetch_Type(spec_differs,
                                                               content);
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/TestUtils.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/TestUtils.c b/core/Lucy/Test/TestUtils.c
index 6659d19..bddfa7b 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) {
-    String *field_str = (String*)SSTR_WRAP_C(field);
-    String *term_str  = (String*)SSTR_WRAP_C(term);
+    String *field_str = SSTR_WRAP_C(field);
+    String *term_str  = SSTR_WRAP_C(term);
     return TermQuery_new((String*)field_str, (Obj*)term_str);
 }
 
 PhraseQuery*
 TestUtils_make_phrase_query(const char *field, ...) {
-    String *field_str = (String*)SSTR_WRAP_C(field);
+    String *field_str = SSTR_WRAP_C(field);
     va_list args;
     Vector *terms = Vec_new(0);
     PhraseQuery *query;
@@ -102,10 +102,8 @@ TestUtils_make_phrase_query(const char *field, ...) {
 
 LeafQuery*
 TestUtils_make_leaf_query(const char *field, const char *term) {
-    String *term_str  = (String*)SSTR_WRAP_C(term);
-    String *field_str = field
-                       ? (String*)SSTR_WRAP_C(field)
-                       : NULL;
+    String *term_str  = SSTR_WRAP_C(term);
+    String *field_str = field ? SSTR_WRAP_C(field) : NULL;
     return LeafQuery_new(field_str, term_str);
 }
 
@@ -120,9 +118,9 @@ RangeQuery*
 TestUtils_make_range_query(const char *field, const char *lower_term,
                            const char *upper_term, bool include_lower,
                            bool include_upper) {
-    String *f     = (String*)SSTR_WRAP_C(field);
-    String *lterm = (String*)SSTR_WRAP_C(lower_term);
-    String *uterm = (String*)SSTR_WRAP_C(upper_term);
+    String *f     = SSTR_WRAP_C(field);
+    String *lterm = SSTR_WRAP_C(lower_term);
+    String *uterm = SSTR_WRAP_C(upper_term);
     return RangeQuery_new(f, (Obj*)lterm, (Obj*)uterm, include_lower,
                           include_upper);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/333119dd/core/Lucy/Test/Util/TestJson.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Util/TestJson.c b/core/Lucy/Test/Util/TestJson.c
index 5310cee..c67e292 100644
--- a/core/Lucy/Test/Util/TestJson.c
+++ b/core/Lucy/Test/Util/TestJson.c
@@ -202,7 +202,7 @@ test_spew_and_slurp(TestBatchRunner *runner) {
     Obj *dump = S_make_dump();
     Folder *folder = (Folder*)RAMFolder_new(NULL);
 
-    String *foo = (String*)SSTR_WRAP_C("foo");
+    String *foo = SSTR_WRAP_C("foo");
     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),
@@ -220,14 +220,14 @@ test_spew_and_slurp(TestBatchRunner *runner) {
               "Failed spew_json sets global error");
 
     Err_set_error(NULL);
-    String *bar = (String*)SSTR_WRAP_C("bar");
+    String *bar = SSTR_WRAP_C("bar");
     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 global error");
 
-    String *boffo = (String*)SSTR_WRAP_C("boffo");
+    String *boffo = SSTR_WRAP_C("boffo");
 
     FileHandle *fh
         = Folder_Open_FileHandle(folder, boffo, FH_CREATE | FH_WRITE_ONLY);