commit 5abde7af8f55660bccbae492cdc4a4964fe193e8
parent 31ec40db57e15469fa960d8dc8aba2d987f36ee1
Author: Florian Ragwitz <rafl@debian.org>
Date: Sun, 13 Nov 2005 12:11:45 +0000
r19538@ata: rafl | 2005-11-13 13:30:32 +0100
* Added an init method which is called after object construction to initialize
the extractor_list value in the object hash.
* Adjusted loadDefaultLibraries() to reflect the changes above.
Diffstat:
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/pm/Extract.pm b/pm/Extract.pm
@@ -16,6 +16,7 @@ sub new {
$class = ref $class || $class;
my $self = {};
bless $self, $class;
+ $self->init();
return $self;
}
diff --git a/xs/Extract.xs b/xs/Extract.xs
@@ -2,19 +2,30 @@
MODULE = File::Extract PACKAGE = File::Extract PREFIX = EXTRACTOR_
-SV*
-EXTRACTOR_loadDefaultLibraries(extractor)
+void
+init(extractor)
SV* extractor
PREINIT:
HV* hv;
- CODE:
- RETVAL = newSvEXTRACTOR_ExtractorList_ornull(EXTRACTOR_loadDefaultLibraries());
+ SV* list = NULL;
+ PPCODE:
+ list = newSvEXTRACTOR_ExtractorList_ornull(NULL);
hv = pextract_get_hv_from_file_extract_obj(extractor);
if (hv) {
- SvREFCNT_inc(RETVAL);
- hv_store(hv, "extractor_list", 14, RETVAL, 0);
- } else
+ SvREFCNT_inc(list);
+ hv_store(hv, "extractor_list", 14, list, 0);
+ } else {
croak("foo");
+ }
+
+SV*
+EXTRACTOR_loadDefaultLibraries(extractor)
+ SV* extractor
+ PREINIT:
+ EXTRACTOR_ExtractorList* list = NULL;
+ CODE:
+ list = SvEXTRACTOR_ExtractorList_ornull(pextract_get_extractor_list(extractor));
+ RETVAL = newSvEXTRACTOR_ExtractorList_ornull(EXTRACTOR_loadDefaultLibraries());
OUTPUT:
RETVAL