--- a/perl/gplugin-perl-loader.c Mon Mar 02 01:03:06 2015 -0600
+++ b/perl/gplugin-perl-loader.c Tue Mar 03 00:27:32 2015 -0600
@@ -47,6 +47,30 @@
newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
+static GPluginPluginInfo * +gplugin_perl_query(const gchar *package, PerlInterpreter *interp) { + gchar *sub = g_strdup_printf("gplugin_query", package); + PERL_SET_CONTEXT(interp); + call_pv(sub, G_SCALAR | G_NOARGS); + g_message("sinfo: %p", sinfo); /******************************************************************************
* GPluginLoaderInterface API
*****************************************************************************/
@@ -60,10 +84,12 @@
GPLUGIN_UNUSED GError **error)
+ GPluginPluginInfo *info = NULL; PerlInterpreter *interp = NULL;
- const gchar *args[] = { "", filename };
+ const gchar *args[] = { "", "-e", "0", "-w" }; gchar **argv = (gchar **)args;
- gint argc = 2, ret = 0;
+ gint argc = 4, ret = 0; g_message("filename: %s", filename);
@@ -90,32 +116,7 @@
- ret = perl_run(interp);
- const gchar *msg = "unknown";
- msg = SvPVutf8_nolen(ERRSV);
- *error = g_error_new(GPLUGIN_DOMAIN, 0,
- "failed to run %s : %s", filename, msg);
- gchar *query_args[] = {NULL,};
- g_message("Before call_argv");
- ret = call_argv("gplugin_query", G_EVAL, query_args);
- g_message("call ret: %d", ret);
- g_message("After call_argv");
+ info = gplugin_perl_query(package, interp);