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);
-