libextractor-perl

GNU libextractor
Log | Files | Refs | README

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:
Mpm/Extract.pm | 1+
Mxs/Extract.xs | 25++++++++++++++++++-------
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