You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2012/04/18 03:01:35 UTC

[lucy-commits] svn commit: r1327345 - in /lucy/trunk: c/src/Lucy/Index/SegReader.c core/Lucy/Index/SegReader.c core/Lucy/Index/SegReader.cfh example-lang/src/Lucy/Index/SegReader.c perl/lib/Lucy.pm perl/xs/Lucy/Index/SegReader.c ruby/src/Lucy/Index/SegReader.c

Author: marvin
Date: Wed Apr 18 01:01:35 2012
New Revision: 1327345

URL: http://svn.apache.org/viewvc?rev=1327345&view=rev
Log:
Replace another host callback with Err#trap.

Removed:
    lucy/trunk/c/src/Lucy/Index/SegReader.c
    lucy/trunk/example-lang/src/Lucy/Index/SegReader.c
    lucy/trunk/perl/xs/Lucy/Index/SegReader.c
    lucy/trunk/ruby/src/Lucy/Index/SegReader.c
Modified:
    lucy/trunk/core/Lucy/Index/SegReader.c
    lucy/trunk/core/Lucy/Index/SegReader.cfh
    lucy/trunk/perl/lib/Lucy.pm

Modified: lucy/trunk/core/Lucy/Index/SegReader.c
URL: http://svn.apache.org/viewvc/lucy/trunk/core/Lucy/Index/SegReader.c?rev=1327345&r1=1327344&r2=1327345&view=diff
==============================================================================
--- lucy/trunk/core/Lucy/Index/SegReader.c (original)
+++ lucy/trunk/core/Lucy/Index/SegReader.c Wed Apr 18 01:01:35 2012
@@ -29,6 +29,10 @@
 #include "Lucy/Search/Matcher.h"
 #include "Lucy/Store/Folder.h"
 
+// Try to initialize all sub-readers.
+static void
+S_try_init_components(void *context);
+
 SegReader*
 SegReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
               VArray *segments, int32_t seg_tick) {
@@ -49,11 +53,11 @@ SegReader_init(SegReader *self, Schema *
     self->doc_max    = (int32_t)Seg_Get_Count(segment);
     self->seg_name   = (CharBuf*)INCREF(Seg_Get_Name(segment));
     self->seg_num    = Seg_Get_Number(segment);
-    mess = SegReader_Try_Init_Components(self);
-    if (mess) {
-        // An error occurred, so clean up self and throw an exception.
+    Err *error = Err_trap(S_try_init_components, self);
+    if (error) {
+        // An error occurred, so clean up self and rethrow the exception.
         DECREF(self);
-        Err_throw_mess(ERR, mess);
+        RETHROW(error);
     }
 
     DeletionsReader *del_reader
@@ -64,6 +68,14 @@ SegReader_init(SegReader *self, Schema *
     return self;
 }
 
+static void
+S_try_init_components(void *context) {
+    SegReader *self = (SegReader*)context;
+    Schema *schema = SegReader_Get_Schema(self);
+    Architecture *arch = Schema_Get_Architecture(schema);
+    Arch_Init_Seg_Reader(arch, self);
+}
+
 void
 SegReader_destroy(SegReader *self) {
     DECREF(self->seg_name);

Modified: lucy/trunk/core/Lucy/Index/SegReader.cfh
URL: http://svn.apache.org/viewvc/lucy/trunk/core/Lucy/Index/SegReader.cfh?rev=1327345&r1=1327344&r2=1327345&view=diff
==============================================================================
--- lucy/trunk/core/Lucy/Index/SegReader.cfh (original)
+++ lucy/trunk/core/Lucy/Index/SegReader.cfh Wed Apr 18 01:01:35 2012
@@ -55,14 +55,6 @@ class Lucy::Index::SegReader inherits Lu
     public void
     Destroy(SegReader *self);
 
-    /** Constructor helper.
-     *
-     * @return either NULL indicating success, or a CharBuf with an error
-     * message.
-     */
-    incremented CharBuf*
-    Try_Init_Components(SegReader *self);
-
     /** Add a component to the SegReader.  Using the same <code>api</code> key
      * twice is an error.
      *

Modified: lucy/trunk/perl/lib/Lucy.pm
URL: http://svn.apache.org/viewvc/lucy/trunk/perl/lib/Lucy.pm?rev=1327345&r1=1327344&r2=1327345&view=diff
==============================================================================
--- lucy/trunk/perl/lib/Lucy.pm (original)
+++ lucy/trunk/perl/lib/Lucy.pm Wed Apr 18 01:01:35 2012
@@ -230,20 +230,6 @@ sub error {$Lucy::Object::Err::error}
 }
 
 {
-    package Lucy::Index::SegReader;
-    our $VERSION = '0.003000';
-    $VERSION = eval $VERSION;
-
-    sub _try_init_components {
-        my $self = shift;
-        my $arch = $self->get_schema->get_architecture;
-        eval { $arch->init_seg_reader($self); };
-        if ($@) { return Lucy::Object::CharBuf->new($@); }
-        return;
-    }
-}
-
-{
     package Lucy::Search::Compiler;
     our $VERSION = '0.003000';
     $VERSION = eval $VERSION;