gplugin/gplugin

more uncommitted tweaking..
feature/perl-loader
2015-05-06, Gary Kramlich
b0905629f956
Parents 8e01455d9051
Children e9f1b21ede63
more uncommitted tweaking..
--- 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";
SV *sinfo = NULL;
+ PERL_SET_CONTEXT(interp);
dSP;
- PERL_SET_CONTEXT(interp);
SPAGAIN;
ENTER;
SAVETMPS;
PUSHMARK(sp);
PUTBACK;
- call_pv(sub, G_SCALAR | G_NOARGS);
+ call_pv(sub, G_SCALAR);
SPAGAIN;
sinfo = POPs;
+ g_warning("sinfo: %p", sinfo);
PUTBACK;
-
- g_free(sub);
-
- g_message("sinfo: %p", sinfo);
+ LEAVE;
return NULL;
}
@@ -86,10 +84,9 @@
{
GPluginPluginInfo *info = NULL;
PerlInterpreter *interp = NULL;
- const gchar *args[] = { "", "-e", "0", "-w" };
- gchar *package = NULL;
+ 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);
perl_construct(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);
if(ret != 0) {
@@ -116,7 +114,7 @@
return NULL;
}
- info = gplugin_perl_query(package, interp);
+ info = gplugin_perl_query(interp);
return NULL;
}