1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-25 20:36:38 +02:00

Fix probable pthread mutex lock on hppa architecture with perl plugin (Debian Bug #495080).

This commit is contained in:
Emmanuel Bouthenot
2008-09-07 16:57:39 +00:00
parent 479ce5d3ca
commit da4e0e03a5
+17 -8
View File
@@ -53,6 +53,9 @@ static PerlInterpreter *perl_main = NULL;
int perl_num = 0;
#endif
char *perl_args[] = { "", "-e", "0", "-w", NULL };
int perl_args_count = 4;
char *perl_weechat_code =
{
#ifndef MULTIPLICITY
@@ -234,7 +237,6 @@ weechat_perl_load (const char *filename)
#ifdef MULTIPLICITY
PerlInterpreter *perl_current_interpreter;
char *perl_args[] = { "", "-e", "0" };
#else
char pkgname[64];
#endif
@@ -270,8 +272,8 @@ weechat_perl_load (const char *filename)
PERL_SET_CONTEXT (perl_current_interpreter);
perl_construct (perl_current_interpreter);
tempscript.interpreter = (PerlInterpreter *) perl_current_interpreter;
perl_parse (perl_current_interpreter, weechat_perl_api_init, 3, perl_args,
NULL);
perl_parse (perl_current_interpreter, weechat_perl_api_init,
perl_args_count, perl_args, NULL);
eval_pv (perl_weechat_code, TRUE);
perl_argv[0] = (char *)filename;
@@ -613,14 +615,16 @@ weechat_perl_buffer_closed_cb (void *data, const char *signal, const char *type_
int
weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
{
#ifndef MULTIPLICITY
char *perl_args[] = { "", "-e", "0" };
#endif
/* make C compiler happy */
(void) argc;
(void) argv;
#ifdef PERL_SYS_INIT3
int a = perl_args_count;
char *perl_env[] = {};
PERL_SYS_INIT3 (&a, (char ***)&perl_args, (char ***)&perl_env);
#endif
weechat_perl_plugin = plugin;
#ifndef MULTIPLICITY
@@ -635,7 +639,8 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
}
perl_construct (perl_main);
perl_parse (perl_main, weechat_perl_api_init, 3, perl_args, NULL);
perl_parse (perl_main, weechat_perl_api_init, perl_args_count,
perl_args, NULL);
eval_pv (perl_weechat_code, TRUE);
#endif
@@ -672,6 +677,10 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
perl_main = NULL;
}
#endif
#ifdef PERL_SYS_TERM
PERL_SYS_TERM ();
#endif
return WEECHAT_RC_OK;
}