--- a/perl/gplugin-perl-loader.c Tue Mar 03 00:27:32 2015 -0600
+++ b/perl/gplugin-perl-loader.c Wed May 06 10:40:38 2015 -0500
@@ -48,25 +48,23 @@
static GPluginPluginInfo *
-gplugin_perl_query(const gchar *package, PerlInterpreter *interp) {
- gchar *sub = g_strdup_printf("gplugin_query", package);
+gplugin_perl_query(PerlInterpreter *interp) { + const gchar *sub = "gplugin_query"; + PERL_SET_CONTEXT(interp); - PERL_SET_CONTEXT(interp);
- call_pv(sub, G_SCALAR | G_NOARGS);
+ call_pv(sub, G_SCALAR); + g_warning("sinfo: %p", sinfo);
- g_message("sinfo: %p", sinfo);
@@ -86,10 +84,9 @@
GPluginPluginInfo *info = NULL;
PerlInterpreter *interp = NULL;
- const gchar *args[] = { "", "-e", "0", "-w" };
+ const gchar *args[] = { "", filename }; gchar **argv = (gchar **)args;
- gint argc = 4, ret = 0;
+ gint argc = 2, ret = 0; g_message("filename: %s", filename);
@@ -97,6 +94,7 @@
PERL_SET_CONTEXT(interp);
PL_perl_destruct_level = 1; /* perl_construct resets this to 0 */
+ PL_exit_flags |= PERL_EXIT_DESTRUCT_END; ret = perl_parse(interp, gplugin_perl_loader_xsinit, argc, argv, NULL);
@@ -116,7 +114,7 @@
- info = gplugin_perl_query(package, interp);
+ info = gplugin_perl_query(interp);