Bug Summary

File:perl/textui/Statusbar.c
Location:line 97, column 20
Description:Dereference of null pointer.

Annotated Source Code

1/*
2 * This file was generated automatically by ExtUtils::ParseXS version 2.19 from the
3 * contents of Statusbar.xs. Do not edit this file, edit Statusbar.xs instead.
4 *
5 * ANY CHANGES MADE HERE WILL BE LOST!
6 *
7 */
8
9#line 1 "Statusbar.xs"
10#include "module.h"
11
12static GHashTable *perl_sbar_defs;
13
14static int check_sbar_destroy(char *key, char *value, char *script)
15{
16 if (strncmp(value, script, strlen(script)) == 0 &&
17 value[strlen(script)] == ':') {
18 statusbar_item_unregister(key);
19 g_free(key);
20 g_free(value);
21 return TRUE(1);
22 }
23
24 return FALSE(0);
25}
26
27static void script_unregister_statusbars(PERL_SCRIPT_REC *script)
28{
29 g_hash_table_foreach_remove(perl_sbar_defs,
30 (GHRFunc) check_sbar_destroy,
31 script->package);
32}
33
34void perl_statusbar_init(void)
35{
36 perl_sbar_defs = g_hash_table_new((GHashFunc) g_str_hash,
37 (GCompareFunc) g_str_equal);
38 signal_add("script destroyed", (SIGNAL_FUNC) script_unregister_statusbars)signal_add_full("perl/core", 0, ("script destroyed"), (SIGNAL_FUNC
) ((SIGNAL_FUNC) script_unregister_statusbars), ((void *)0))
;
39}
40
41static void statusbar_item_def_destroy(void *key, void *value)
42{
43 statusbar_item_unregister(key);
44 g_free(key);
45 g_free(value);
46}
47
48void perl_statusbar_deinit(void)
49{
50 signal_remove("script destroyed", (SIGNAL_FUNC) script_unregister_statusbars)signal_remove_full(("script destroyed"), (SIGNAL_FUNC) ((SIGNAL_FUNC
) script_unregister_statusbars), ((void *)0))
;
51
52 g_hash_table_foreach(perl_sbar_defs,
53 (GHFunc) statusbar_item_def_destroy, NULL((void *)0));
54 g_hash_table_destroy(perl_sbar_defs);
55}
56
57static void perl_statusbar_event(char *function, SBAR_ITEM_REC *item,
58 int get_size_only)
59{
60 dSPSV **sp = PL_stack_sp;
61 int retcount;
62 SV *item_sv, **sv;
63 HV *hv;
64
65 ENTERPerl_push_scope();
66 SAVETMPSPerl_save_int((int*)&PL_tmps_floor), PL_tmps_floor = PL_tmps_ix;
67
68 PUSHMARK(SP)(void)( { if (++PL_markstack_ptr == PL_markstack_max) Perl_markstack_grow
(); *PL_markstack_ptr = (I32)((sp) - PL_stack_base); } )
;
[1] Taking true branch
69 item_sv = plain_bless(item, "Irssi::TextUI::StatusbarItem")((item) == ((void *)0) ? &PL_sv_undef : irssi_bless_plain
("Irssi::TextUI::StatusbarItem", item))
;
[2] '?' condition evaluates to true
70 XPUSHs(sv_2mortal(item_sv))(void)( { (void)( { if (PL_stack_max - sp < (int)(1)) { sp
= Perl_stack_grow(sp,sp, (int) (1)); } } ); (*++sp = (Perl_sv_2mortal
(item_sv))); } )
;
[3] Taking true branch
71 XPUSHs(sv_2mortal(newSViv(get_size_only)))(void)( { (void)( { if (PL_stack_max - sp < (int)(1)) { sp
= Perl_stack_grow(sp,sp, (int) (1)); } } ); (*++sp = (Perl_sv_2mortal
(Perl_newSViv(get_size_only)))); } )
;
[4] Taking true branch
72 PUTBACKPL_stack_sp = sp;
73
74 retcount = perl_call_pv(function, G_EVAL|G_DISCARD)Perl_call_pv(function,4|2);
75 SPAGAINsp = PL_stack_sp;
76
77 if (SvTRUE(ERRSV)( !((((XPVGV*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv) ?
0 : ((((((XPVGV*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv
))->sv_flags & 0x00040000) ? (({XPV *nxpv = (XPV*)((((
(XPVGV*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv))->sv_any
; nxpv && (nxpv->xpv_cur > 1 || (nxpv->xpv_cur
&& *nxpv->xpv_pv != '0')); }) ? 1 : 0) : ((((((XPVGV
*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv))->sv_flags
& 0x00010000) ? ((XPVIV*) (((((XPVGV*)(PL_errgv)->sv_any
)->xgv_gp)->gp_sv))->sv_any)->xiv_iv != 0 : (((((
(XPVGV*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv))->sv_flags
& 0x00020000) ? ((XPVNV*)(((((XPVGV*)(PL_errgv)->sv_any
)->xgv_gp)->gp_sv))->sv_any)->xnv_nv != 0.0 : Perl_sv_2bool
(((((XPVGV*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv)) )
) {
[5] '?' condition evaluates to true
[6] Taking false branch
78 PERL_SCRIPT_REC *script;
79 char *package;
80
81 package = perl_function_get_package(function);
82 script = perl_script_find_package(package);
83 g_free(package);
84
85 if (script != NULL((void *)0)) {
86 /* make sure we don't get back here */
87 script_unregister_statusbars(script);
88 }
89 signal_emit("script error", 2, script, SvPV(ERRSV, PL_na)(((((((XPVGV*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv))->
sv_flags & (0x00040000)) == 0x00040000 ? ((PL_na = ((XPV*
) (((((XPVGV*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv))->
sv_any)->xpv_cur), ((XPV*) (((((XPVGV*)(PL_errgv)->sv_any
)->xgv_gp)->gp_sv))->sv_any)->xpv_pv) : Perl_sv_2pv_flags
(((((XPVGV*)(PL_errgv)->sv_any)->xgv_gp)->gp_sv), &
PL_na, 2))
);
90 } else {
91 /* min_size and max_size can be changed, move them to SBAR_ITEM_REC */
92 hv = hvref(item_sv)(((item_sv) && ((item_sv)->sv_flags & 0x00080000
) && ((XRV*) (item_sv)->sv_any)->xrv_rv &&
(((svtype)((((XRV*) (item_sv)->sv_any)->xrv_rv)->sv_flags
& 0xff)) == SVt_PVHV)) ? (HV *)((XRV*) (item_sv)->sv_any
)->xrv_rv : ((void *)0))
;
[7] '?' condition evaluates to true
93 if (hv != NULL((void *)0)) {
[8] Taking true branch
94 sv = hv_fetch(hv, "min_size", 8, 0)((SV**) Perl_hv_common_key_len((hv), ("min_size"), (8), (0) ?
(0x20 | 0x10) : 0x20, ((void *)0), 0))
;
[9] '?' condition evaluates to false
95 if (sv != NULL((void *)0)) item->min_size = SvIV(*sv)(((*sv)->sv_flags & 0x00010000) ? ((XPVIV*) (*sv)->
sv_any)->xiv_iv : Perl_sv_2iv_flags(*sv, 2))
;
[10] Taking false branch
96 sv = hv_fetch(hv, "max_size", 8, 0)((SV**) Perl_hv_common_key_len((hv), ("max_size"), (8), (0) ?
(0x20 | 0x10) : 0x20, ((void *)0), 0))
;
[11] '?' condition evaluates to false
97 if (sv != NULL((void *)0)) item->max_size = SvIV(*sv)(((*sv)->sv_flags & 0x00010000) ? ((XPVIV*) (*sv)->
sv_any)->xiv_iv : Perl_sv_2iv_flags(*sv, 2))
;
[12] Taking true branch
[13] '?' condition evaluates to false
[14] Dereference of null pointer
98 }
99 }
100
101 PUTBACKPL_stack_sp = sp;
102 FREETMPSif (PL_tmps_ix > PL_tmps_floor) Perl_free_tmps();
103 LEAVEPerl_pop_scope();
104}
105
106
107static void sig_perl_statusbar(SBAR_ITEM_REC *item, int get_size_only)
108{
109 char *function;
110
111 function = g_hash_table_lookup(perl_sbar_defs, item->config->name);
112 if (function != NULL((void *)0))
113 perl_statusbar_event(function, item, get_size_only);
114 else {
115 /* use default function - this shouldn't actually happen.. */
116 statusbar_item_default_handler(item, get_size_only, NULL((void *)0), "", TRUE(1));
117 }
118}
119
120#ifndef PERL_UNUSED_VAR
121# define PERL_UNUSED_VAR(var)((void)var) if (0) var = var
122#endif
123
124#line 125 "Statusbar.c"
125
126XS(XS_Irssi_statusbar_item_register)void XS_Irssi_statusbar_item_register( CV* cv __attribute__((
unused)))
; /* prototype to pass -Wmissing-prototypes */
127XS(XS_Irssi_statusbar_item_register)void XS_Irssi_statusbar_item_register( CV* cv __attribute__((
unused)))
128{
129#ifdef dVAR
130 dVAR; dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
131#else
132 dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
133#endif
134 if (items < 2 || items > 3)
135 Perl_croak(aTHX_ "Usage: %s(%s)", "Irssi::statusbar_item_register", "name, value, func = NULL");
136 PERL_UNUSED_VAR(cv)((void)cv); /* -W */
137 {
138 char * name = (char *)SvPV_nolen(ST(0))(((PL_stack_base[ax + (0)])->sv_flags & (0x00040000)) ==
0x00040000 ? ((XPV*) (PL_stack_base[ax + (0)])->sv_any)->
xpv_pv : Perl_sv_2pv_flags(PL_stack_base[ax + (0)], 0, 2))
;
139 char * value = (char *)SvPV_nolen(ST(1))(((PL_stack_base[ax + (1)])->sv_flags & (0x00040000)) ==
0x00040000 ? ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->
xpv_pv : Perl_sv_2pv_flags(PL_stack_base[ax + (1)], 0, 2))
;
140 char * func;
141
142 if (items < 3)
143 func = NULL((void *)0);
144 else {
145 func = (char *)SvPV_nolen(ST(2))(((PL_stack_base[ax + (2)])->sv_flags & (0x00040000)) ==
0x00040000 ? ((XPV*) (PL_stack_base[ax + (2)])->sv_any)->
xpv_pv : Perl_sv_2pv_flags(PL_stack_base[ax + (2)], 0, 2))
;
146 }
147#line 120 "Statusbar.xs"
148 statusbar_item_register(name, value, func == NULL((void *)0) || *func == '\0' ? NULL((void *)0) : sig_perl_statusbar);
149 if (func != NULL((void *)0)) {
150 g_hash_table_insert(perl_sbar_defs, g_strdup(name),
151 g_strdup_printf("%s::%s", perl_get_package(), func));
152 }
153#line 154 "Statusbar.c"
154 }
155 XSRETURN_EMPTY(void)( { (void)( { const IV tmpXSoff = (0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } ); } )
;
156}
157
158
159XS(XS_Irssi_statusbar_item_unregister)void XS_Irssi_statusbar_item_unregister( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
160XS(XS_Irssi_statusbar_item_unregister)void XS_Irssi_statusbar_item_unregister( CV* cv __attribute__
((unused)))
161{
162#ifdef dVAR
163 dVAR; dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
164#else
165 dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
166#endif
167 if (items != 1)
168 Perl_croak(aTHX_ "Usage: %s(%s)", "Irssi::statusbar_item_unregister", "name");
169 PERL_UNUSED_VAR(cv)((void)cv); /* -W */
170 {
171 char * name = (char *)SvPV_nolen(ST(0))(((PL_stack_base[ax + (0)])->sv_flags & (0x00040000)) ==
0x00040000 ? ((XPV*) (PL_stack_base[ax + (0)])->sv_any)->
xpv_pv : Perl_sv_2pv_flags(PL_stack_base[ax + (0)], 0, 2))
;
172#line 130 "Statusbar.xs"
173 gpointer key, value;
174#line 175 "Statusbar.c"
175#line 132 "Statusbar.xs"
176 if (g_hash_table_lookup_extended(perl_sbar_defs, name, &key, &value)) {
177 g_hash_table_remove(perl_sbar_defs, name);
178 g_free(key);
179 g_free(value);
180 }
181 statusbar_item_unregister(name);
182#line 183 "Statusbar.c"
183 }
184 XSRETURN_EMPTY(void)( { (void)( { const IV tmpXSoff = (0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } ); } )
;
185}
186
187
188XS(XS_Irssi_statusbar_items_redraw)void XS_Irssi_statusbar_items_redraw( CV* cv __attribute__((unused
)))
; /* prototype to pass -Wmissing-prototypes */
189XS(XS_Irssi_statusbar_items_redraw)void XS_Irssi_statusbar_items_redraw( CV* cv __attribute__((unused
)))
190{
191#ifdef dVAR
192 dVAR; dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
193#else
194 dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
195#endif
196 if (items != 1)
197 Perl_croak(aTHX_ "Usage: %s(%s)", "Irssi::statusbar_items_redraw", "name");
198 PERL_UNUSED_VAR(cv)((void)cv); /* -W */
199 {
200 char * name = (char *)SvPV_nolen(ST(0))(((PL_stack_base[ax + (0)])->sv_flags & (0x00040000)) ==
0x00040000 ? ((XPV*) (PL_stack_base[ax + (0)])->sv_any)->
xpv_pv : Perl_sv_2pv_flags(PL_stack_base[ax + (0)], 0, 2))
;
201
202 statusbar_items_redraw(name);
203 }
204 XSRETURN_EMPTY(void)( { (void)( { const IV tmpXSoff = (0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } ); } )
;
205}
206
207
208XS(XS_Irssi_statusbars_recreate_items)void XS_Irssi_statusbars_recreate_items( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
209XS(XS_Irssi_statusbars_recreate_items)void XS_Irssi_statusbars_recreate_items( CV* cv __attribute__
((unused)))
210{
211#ifdef dVAR
212 dVAR; dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
213#else
214 dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
215#endif
216 if (items != 0)
217 Perl_croak(aTHX_ "Usage: %s(%s)", "Irssi::statusbars_recreate_items", "");
218 PERL_UNUSED_VAR(cv)((void)cv); /* -W */
219 {
220
221 statusbars_recreate_items();
222 }
223 XSRETURN_EMPTY(void)( { (void)( { const IV tmpXSoff = (0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } ); } )
;
224}
225
226
227XS(XS_Irssi__TextUI__StatusbarItem_default_handler)void XS_Irssi__TextUI__StatusbarItem_default_handler( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
228XS(XS_Irssi__TextUI__StatusbarItem_default_handler)void XS_Irssi__TextUI__StatusbarItem_default_handler( CV* cv __attribute__
((unused)))
229{
230#ifdef dVAR
231 dVAR; dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
232#else
233 dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
234#endif
235 if (items < 4 || items > 5)
236 Perl_croak(aTHX_ "Usage: %s(%s)", "Irssi::TextUI::StatusbarItem::default_handler", "item, get_size_only, str, data, escape_vars = TRUE");
237 PERL_UNUSED_VAR(cv)((void)cv); /* -W */
238 {
239 Irssi__TextUI__StatusbarItem item = irssi_ref_object(ST(0)PL_stack_base[ax + (0)]);
240 int get_size_only = (int)SvIV(ST(1))(((PL_stack_base[ax + (1)])->sv_flags & 0x00010000) ? (
(XPVIV*) (PL_stack_base[ax + (1)])->sv_any)->xiv_iv : Perl_sv_2iv_flags
(PL_stack_base[ax + (1)], 2))
;
241 char * str = (char *)SvPV_nolen(ST(2))(((PL_stack_base[ax + (2)])->sv_flags & (0x00040000)) ==
0x00040000 ? ((XPV*) (PL_stack_base[ax + (2)])->sv_any)->
xpv_pv : Perl_sv_2pv_flags(PL_stack_base[ax + (2)], 0, 2))
;
242 char * data = (char *)SvPV_nolen(ST(3))(((PL_stack_base[ax + (3)])->sv_flags & (0x00040000)) ==
0x00040000 ? ((XPV*) (PL_stack_base[ax + (3)])->sv_any)->
xpv_pv : Perl_sv_2pv_flags(PL_stack_base[ax + (3)], 0, 2))
;
243 int escape_vars;
244#line 158 "Statusbar.xs"
245 HV *hv;
246#line 247 "Statusbar.c"
247
248 if (items < 5)
249 escape_vars = TRUE(1);
250 else {
251 escape_vars = (int)SvIV(ST(4))(((PL_stack_base[ax + (4)])->sv_flags & 0x00010000) ? (
(XPVIV*) (PL_stack_base[ax + (4)])->sv_any)->xiv_iv : Perl_sv_2iv_flags
(PL_stack_base[ax + (4)], 2))
;
252 }
253#line 160 "Statusbar.xs"
254 statusbar_item_default_handler(item, get_size_only,
255 *str == '\0' ? NULL((void *)0) : str,
256 data, escape_vars);
257 hv = hvref(ST(0))(((PL_stack_base[ax + (0)]) && ((PL_stack_base[ax + (
0)])->sv_flags & 0x00080000) && ((XRV*) (PL_stack_base
[ax + (0)])->sv_any)->xrv_rv && (((svtype)((((XRV
*) (PL_stack_base[ax + (0)])->sv_any)->xrv_rv)->sv_flags
& 0xff)) == SVt_PVHV)) ? (HV *)((XRV*) (PL_stack_base[ax
+ (0)])->sv_any)->xrv_rv : ((void *)0))
;
258 hv_store(hv, "min_size", 8, newSViv(item->min_size), 0)((SV**) Perl_hv_common_key_len((hv), ("min_size"), (8), (0x04
|0x20), (Perl_newSViv(item->min_size)), (0)))
;
259 hv_store(hv, "max_size", 8, newSViv(item->max_size), 0)((SV**) Perl_hv_common_key_len((hv), ("max_size"), (8), (0x04
|0x20), (Perl_newSViv(item->max_size)), (0)))
;
260#line 261 "Statusbar.c"
261 }
262 XSRETURN_EMPTY(void)( { (void)( { const IV tmpXSoff = (0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } ); } )
;
263}
264
265#ifdef __cplusplus
266extern "C"
267#endif
268XS(boot_Irssi__TextUI__Statusbar)void boot_Irssi__TextUI__Statusbar( CV* cv __attribute__((unused
)))
; /* prototype to pass -Wmissing-prototypes */
269XS(boot_Irssi__TextUI__Statusbar)void boot_Irssi__TextUI__Statusbar( CV* cv __attribute__((unused
)))
270{
271#ifdef dVAR
272 dVAR; dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
273#else
274 dXSARGSSV **sp = PL_stack_sp; I32 ax = (*PL_markstack_ptr--); register
SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark
)
;
275#endif
276 char* file = __FILE__"Statusbar.c";
277
278 PERL_UNUSED_VAR(cv)((void)cv); /* -W */
279 PERL_UNUSED_VAR(items)((void)items); /* -W */
280 XS_VERSION_BOOTCHECK(void)( { SV *_sv; const char *vn = ((void *)0), *module = ((
(PL_stack_base[ax + (0)])->sv_flags & (0x00040000)) ==
0x00040000 ? ((const char*) (0 + ((XPV*) (PL_stack_base[ax +
(0)])->sv_any)->xpv_pv)) : Perl_sv_2pv_flags(PL_stack_base
[ax + (0)], 0, 2|32)); if (items >= 2) _sv = PL_stack_base
[ax + (1)]; else { _sv = Perl_get_sv(Perl_form( "%s::%s", module
, vn = "XS_VERSION"), (0)); if (!_sv || !((_sv)->sv_flags &
(0x00010000|0x00020000|0x00040000|0x00080000| 0x01000000|0x02000000
|0x04000000))) _sv = Perl_get_sv(Perl_form( "%s::%s", module,
vn = "VERSION"), (0)); } if (_sv && (!((_sv)->sv_flags
& (0x00010000|0x00020000|0x00040000|0x00080000| 0x01000000
|0x02000000|0x04000000)) || (strcmp("0.9",(((_sv)->sv_flags
& (0x00040000)) == 0x00040000 ? ((const char*) (0 + ((XPV
*) (_sv)->sv_any)->xpv_pv)) : Perl_sv_2pv_flags(_sv, 0,
2|32)))))) Perl_croak( "%s object version %s does not match %s%s%s%s %"
"_", module, "0.9", vn ? "$" : "", vn ? module : "", vn ? "::"
: "", vn ? vn : "bootstrap parameter", _sv); } )
;
281
282 newXSproto("Irssi::statusbar_item_register", XS_Irssi_statusbar_item_register, file, "$$;$")Perl_newXS_flags("Irssi::statusbar_item_register",XS_Irssi_statusbar_item_register
,file,"$$;$",0)
;
283 newXSproto("Irssi::statusbar_item_unregister", XS_Irssi_statusbar_item_unregister, file, "$")Perl_newXS_flags("Irssi::statusbar_item_unregister",XS_Irssi_statusbar_item_unregister
,file,"$",0)
;
284 newXSproto("Irssi::statusbar_items_redraw", XS_Irssi_statusbar_items_redraw, file, "$")Perl_newXS_flags("Irssi::statusbar_items_redraw",XS_Irssi_statusbar_items_redraw
,file,"$",0)
;
285 newXSproto("Irssi::statusbars_recreate_items", XS_Irssi_statusbars_recreate_items, file, "")Perl_newXS_flags("Irssi::statusbars_recreate_items",XS_Irssi_statusbars_recreate_items
,file,"",0)
;
286 newXSproto("Irssi::TextUI::StatusbarItem::default_handler", XS_Irssi__TextUI__StatusbarItem_default_handler, file, "$$$$;$")Perl_newXS_flags("Irssi::TextUI::StatusbarItem::default_handler"
,XS_Irssi__TextUI__StatusbarItem_default_handler,file,"$$$$;$"
,0)
;
287 XSRETURN_YES(void)( { (PL_stack_base[ax + (0)] = &PL_sv_yes ); (void)
( { const IV tmpXSoff = (1); PL_stack_sp = PL_stack_base + ax
+ (tmpXSoff - 1); return; } ); } )
;
288}
289