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 2011/02/17 22:04:52 UTC

[lucy-commits] svn commit: r1071788 - in /incubator/lucy/trunk/clownfish: lib/Clownfish.xs src/CFCParcel.c src/CFCParcel.h

Author: marvin
Date: Thu Feb 17 21:04:52 2011
New Revision: 1071788

URL: http://svn.apache.org/viewvc?rev=1071788&view=rev
Log:
Rebase CFCParcel under CFCBase (but don't clean up its refcount leaks yet).

Modified:
    incubator/lucy/trunk/clownfish/lib/Clownfish.xs
    incubator/lucy/trunk/clownfish/src/CFCParcel.c
    incubator/lucy/trunk/clownfish/src/CFCParcel.h

Modified: incubator/lucy/trunk/clownfish/lib/Clownfish.xs
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/clownfish/lib/Clownfish.xs?rev=1071788&r1=1071787&r2=1071788&view=diff
==============================================================================
--- incubator/lucy/trunk/clownfish/lib/Clownfish.xs (original)
+++ incubator/lucy/trunk/clownfish/lib/Clownfish.xs Thu Feb 17 21:04:52 2011
@@ -439,8 +439,7 @@ CODE:
     const char *name  = SvOK(name_sv)  ? SvPV_nolen(name_sv)  : NULL;
     const char *cnick = SvOK(cnick_sv) ? SvPV_nolen(cnick_sv) : NULL;
     CFCParcel *self = CFCParcel_singleton(name, cnick);
-    SV *inner_object = SvRV((SV*)CFCParcel_get_perl_object(self));
-    RETVAL = newRV(inner_object);
+    RETVAL = newRV((SV*)CFCBase_get_perl_obj((CFCBase*)self));
 OUTPUT: RETVAL
 
 void
@@ -461,8 +460,7 @@ SV*
 default_parcel(...)
 CODE:
     CFCParcel *default_parcel = CFCParcel_default_parcel();
-    SV *inner_obj = SvRV((SV*)CFCParcel_get_perl_object(default_parcel));
-    RETVAL = newRV(inner_obj);
+    RETVAL = newRV((SV*)CFCBase_get_perl_obj((CFCBase*)default_parcel));
 OUTPUT: RETVAL
 
 void
@@ -566,7 +564,7 @@ PPCODE:
     START_SET_OR_GET_SWITCH
         case 2: {
                 struct CFCParcel *parcel = CFCSymbol_get_parcel(self);
-                retval = newSVsv((SV*)CFCParcel_get_perl_object(parcel));
+                retval = newRV((SV*)CFCBase_get_perl_obj((CFCBase*)parcel));
             }
             break;
         case 4: {
@@ -892,7 +890,7 @@ PPCODE:
         case 4: {
                 CFCParcel *parcel = CFCType_get_parcel(self);
                 retval = parcel
-                       ? newSVsv((SV*)CFCParcel_get_perl_object(parcel))
+                       ? newRV((SV*)CFCBase_get_perl_obj((CFCBase*)parcel))
                        : newSV(0);
             }
             break;

Modified: incubator/lucy/trunk/clownfish/src/CFCParcel.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/clownfish/src/CFCParcel.c?rev=1071788&r1=1071787&r2=1071788&view=diff
==============================================================================
--- incubator/lucy/trunk/clownfish/src/CFCParcel.c (original)
+++ incubator/lucy/trunk/clownfish/src/CFCParcel.c Thu Feb 17 21:04:52 2011
@@ -25,16 +25,18 @@
   #define false 0
 #endif
 
+#define CFC_NEED_BASE_STRUCT_DEF
+#include "CFCBase.h"
 #include "CFCParcel.h"
 #include "CFCUtil.h"
 
 struct CFCParcel {
+    CFCBase base;
     char *name;
     char *cnick;
     char *prefix;
     char *Prefix;
     char *PREFIX;
-    void *perl_object;
 };
 
 #define MAX_PARCELS 100
@@ -92,8 +94,8 @@ S_validate_name_or_cnick(const char *ori
 CFCParcel*
 CFCParcel_new(const char *name, const char *cnick)
 {
-    CFCParcel *self = (CFCParcel*)calloc(sizeof(CFCParcel), 1);
-    if (!self) { croak("malloc failed"); }
+    CFCParcel *self = (CFCParcel*)CFCBase_allocate(sizeof(CFCParcel),
+        "Clownfish::Parcel");
     return CFCParcel_init(self, name, cnick);
 }
 
@@ -145,9 +147,6 @@ CFCParcel_init(CFCParcel *self, const ch
     self->Prefix[prefix_len] = '\0';
     self->PREFIX[prefix_len] = '\0';
 
-    self->perl_object = newSV(0);
-	sv_setref_pv(self->perl_object, "Clownfish::Parcel", (void*)self);
-
     return self;
 }
 
@@ -159,7 +158,7 @@ CFCParcel_destroy(CFCParcel *self)
     free(self->prefix);
     free(self->Prefix);
     free(self->PREFIX);
-    free(self);
+    CFCBase_destroy((CFCBase*)self);
 }
 
 static CFCParcel *default_parcel = NULL;
@@ -212,9 +211,3 @@ CFCParcel_get_PREFIX(CFCParcel *self)
     return self->PREFIX;
 }
 
-void*
-CFCParcel_get_perl_object(CFCParcel *self)
-{
-    return self->perl_object;
-}
-

Modified: incubator/lucy/trunk/clownfish/src/CFCParcel.h
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/clownfish/src/CFCParcel.h?rev=1071788&r1=1071787&r2=1071788&view=diff
==============================================================================
--- incubator/lucy/trunk/clownfish/src/CFCParcel.h (original)
+++ incubator/lucy/trunk/clownfish/src/CFCParcel.h Thu Feb 17 21:04:52 2011
@@ -49,6 +49,3 @@ CFCParcel_get_Prefix(CFCParcel *self);
 const char*
 CFCParcel_get_PREFIX(CFCParcel *self);
 
-void*
-CFCParcel_get_perl_object(CFCParcel *self);
-