commit 3210118c97bcf55aef60cfcf3334fe5c79220846 parent 4278e41e7b6a44e17cf8e66067ac7bee5c38bfbb Author: Florian Ragwitz <rafl@debian.org> Date: Sun, 13 Nov 2005 21:32:44 +0000 r19567@ata: rafl | 2005-11-13 22:51:22 +0100 * Fixed a segfault Diffstat:
| M | xs/Extract.xs | | | 17 | ++++++++++++++--- |
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/xs/Extract.xs b/xs/Extract.xs @@ -139,10 +139,21 @@ getLibraries(extractor) EXTRACTOR_ExtractorList* list = NULL; EXTRACTOR_ExtractorList* i = NULL; PPCODE: - list = SvEXTRACTOR_ExtractorList(pextract_get_extractor_list(extractor)); - for (i = list; i != NULL; i = i->next) { + list = SvEXTRACTOR_ExtractorList_ornull(pextract_get_extractor_list(extractor)); + i = list; + while (i != NULL) { + if (!i->libname) + continue; + XPUSHs(sv_2mortal(newSVpv(i->libname, strlen(i->libname)))); - XPUSHs(sv_2mortal(newSVpv(i->options, strlen(i->options)))); + + if (i->options) { + XPUSHs(sv_2mortal(newSVpv(i->options, strlen(i->options)))); + } else { + XPUSHs(&PL_sv_undef); + } + + i = i->next; } #BOOT: