Added API version check between perl module and perl libs.

perl_scripts_deinit() now destroys all dynamically loaded libraries (Irssi,
Irssi::Irc, Irssi::UI too) so /UNLOAD perl should now release more memory,
this also makes /unload perl, /load perl work again.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1859 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2001-10-20 13:19:25 +00:00 committed by cras
commit a5b32b70a7
12 changed files with 81 additions and 6 deletions

View file

@ -7,7 +7,7 @@ package Irssi::UI;
use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
$VERSION = "0.20";
$VERSION = "0.8";
require Exporter;
require DynaLoader;

View file

@ -104,6 +104,12 @@ static PLAIN_OBJECT_INIT_REC fe_plains[] = {
{ NULL, NULL }
};
static void sig_deinit(void)
{
signal_remove("script destroy", (SIGNAL_FUNC) sig_script_destroy);
signal_remove("perl scripts deinit", (SIGNAL_FUNC) sig_deinit);
}
MODULE = Irssi::UI PACKAGE = Irssi::UI
PROTOTYPES: ENABLE
@ -114,11 +120,13 @@ PREINIT:
static int initialized = FALSE;
CODE:
if (initialized) return;
perl_api_version_check("Irssi::UI");
initialized = TRUE;
irssi_add_plains(fe_plains);
signal_add("script destroy", (SIGNAL_FUNC) sig_script_destroy);
signal_add("perl scripts deinit", (SIGNAL_FUNC) sig_deinit);
INCLUDE: Themes.xs