This was the default destructor for mbfl_identify_filter structs, but there's nothing
we actually need to do to those structs before freeing them.
const struct mbfl_identify_vtbl vtbl_identify_armscii8 = {
mbfl_no_encoding_armscii8,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_armscii8
};
const struct mbfl_identify_vtbl vtbl_identify_ascii = {
mbfl_no_encoding_ascii,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_ascii
};
const struct mbfl_identify_vtbl vtbl_identify_big5 = {
mbfl_no_encoding_big5,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_big5
};
const struct mbfl_identify_vtbl vtbl_identify_cp950 = {
mbfl_no_encoding_cp950,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_big5
};
const struct mbfl_identify_vtbl vtbl_identify_cp1251 = {
mbfl_no_encoding_cp1251,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp1251
};
const struct mbfl_identify_vtbl vtbl_identify_cp1252 = {
mbfl_no_encoding_cp1252,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp1252
};
const struct mbfl_identify_vtbl vtbl_identify_cp1254 = {
mbfl_no_encoding_cp1254,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp1254
};
const struct mbfl_identify_vtbl vtbl_identify_jis_ms = {
mbfl_no_encoding_jis_ms,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_jis_ms
};
const struct mbfl_identify_vtbl vtbl_identify_cp50220 = {
mbfl_no_encoding_cp50220,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp50220
};
const struct mbfl_identify_vtbl vtbl_identify_cp50220raw = {
mbfl_no_encoding_cp50220raw,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp50220
};
const struct mbfl_identify_vtbl vtbl_identify_cp50221 = {
mbfl_no_encoding_cp50221,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp50221
};
const struct mbfl_identify_vtbl vtbl_identify_cp50222 = {
mbfl_no_encoding_cp50222,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp50222
};
const struct mbfl_identify_vtbl vtbl_identify_cp51932 = {
mbfl_no_encoding_cp51932,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp51932
};
const struct mbfl_identify_vtbl vtbl_identify_cp850 = {
mbfl_no_encoding_cp850,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp850
};
const struct mbfl_identify_vtbl vtbl_identify_cp866 = {
mbfl_no_encoding_cp866,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp866
};
const struct mbfl_identify_vtbl vtbl_identify_cp932 = {
mbfl_no_encoding_cp932,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp932
};
const struct mbfl_identify_vtbl vtbl_identify_cp936 = {
mbfl_no_encoding_cp936,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_cp936
};
const struct mbfl_identify_vtbl vtbl_identify_euccn = {
mbfl_no_encoding_euc_cn,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_euccn
};
const struct mbfl_identify_vtbl vtbl_identify_eucjp = {
mbfl_no_encoding_euc_jp,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_eucjp
};
const struct mbfl_identify_vtbl vtbl_identify_eucjp2004 = {
mbfl_no_encoding_eucjp2004,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_eucjp
};
const struct mbfl_identify_vtbl vtbl_identify_eucjpwin = {
mbfl_no_encoding_eucjp_win,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_eucjp_win
};
const struct mbfl_identify_vtbl vtbl_identify_euckr = {
mbfl_no_encoding_euc_kr,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_euckr
};
const struct mbfl_identify_vtbl vtbl_identify_euctw = {
mbfl_no_encoding_euc_tw,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_euctw
};
const struct mbfl_identify_vtbl vtbl_identify_gb18030 = {
mbfl_no_encoding_gb18030,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_gb18030
};
const struct mbfl_identify_vtbl vtbl_identify_hz = {
mbfl_no_encoding_hz,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_hz
};
const struct mbfl_identify_vtbl vtbl_identify_2022jpms = {
mbfl_no_encoding_2022jpms,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_2022jpms
};
const struct mbfl_identify_vtbl vtbl_identify_2022kr = {
mbfl_no_encoding_2022kr,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_2022kr
};
const struct mbfl_identify_vtbl vtbl_identify_2022jp_2004 = {
mbfl_no_encoding_2022jp_2004,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_2022jp_2004
};
const struct mbfl_identify_vtbl vtbl_identify_2022jp_kddi = {
mbfl_no_encoding_2022jp_kddi,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_2022jpms
};
const struct mbfl_identify_vtbl vtbl_identify_8859_1 = {
mbfl_no_encoding_8859_1,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_10 = {
mbfl_no_encoding_8859_10,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_13 = {
mbfl_no_encoding_8859_13,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_14 = {
mbfl_no_encoding_8859_14,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_15 = {
mbfl_no_encoding_8859_15,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_16 = {
mbfl_no_encoding_8859_16,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_2 = {
mbfl_no_encoding_8859_2,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_3 = {
mbfl_no_encoding_8859_3,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_4 = {
mbfl_no_encoding_8859_4,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
- mbfl_filt_ident_true };
+ mbfl_filt_ident_true
+};
const struct mbfl_convert_vtbl vtbl_8859_4_wchar = {
mbfl_no_encoding_8859_4,
const struct mbfl_identify_vtbl vtbl_identify_8859_5 = {
mbfl_no_encoding_8859_5,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_6 = {
mbfl_no_encoding_8859_6,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_7 = {
mbfl_no_encoding_8859_7,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_8 = {
mbfl_no_encoding_8859_8,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_8859_9 = {
mbfl_no_encoding_8859_9,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_true
};
const struct mbfl_identify_vtbl vtbl_identify_jis = {
mbfl_no_encoding_jis,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_jis
};
const struct mbfl_identify_vtbl vtbl_identify_2022jp = {
mbfl_no_encoding_2022jp,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_2022jp
};
const struct mbfl_identify_vtbl vtbl_identify_koi8r = {
mbfl_no_encoding_koi8r,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_koi8r
};
const struct mbfl_identify_vtbl vtbl_identify_koi8u = {
mbfl_no_encoding_koi8u,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_koi8u
};
const struct mbfl_identify_vtbl vtbl_identify_sjis = {
mbfl_no_encoding_sjis,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_sjis
};
const struct mbfl_identify_vtbl vtbl_identify_sjis2004 = {
mbfl_no_encoding_sjis2004,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_sjis
};
const struct mbfl_identify_vtbl vtbl_identify_sjis_mac = {
mbfl_no_encoding_sjis_mac,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_sjis
};
const struct mbfl_identify_vtbl vtbl_identify_sjis_docomo = {
mbfl_no_encoding_sjis_docomo,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_sjis
};
const struct mbfl_identify_vtbl vtbl_identify_sjis_kddi = {
mbfl_no_encoding_sjis_kddi,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_sjis
};
const struct mbfl_identify_vtbl vtbl_identify_sjis_sb = {
mbfl_no_encoding_sjis_sb,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_sjis
};
const struct mbfl_identify_vtbl vtbl_identify_sjis_open = {
mbfl_no_encoding_sjis_open,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_sjis_open
};
const struct mbfl_identify_vtbl vtbl_identify_uhc = {
mbfl_no_encoding_uhc,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_uhc
};
const struct mbfl_identify_vtbl vtbl_identify_utf7 = {
mbfl_no_encoding_utf7,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_utf7
};
const struct mbfl_identify_vtbl vtbl_identify_utf8 = {
mbfl_no_encoding_utf8,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_utf8
};
const struct mbfl_identify_vtbl vtbl_identify_utf8_docomo = {
mbfl_no_encoding_utf8_docomo,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_utf8
};
const struct mbfl_identify_vtbl vtbl_identify_utf8_kddi_a = {
mbfl_no_encoding_utf8_kddi_a,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_utf8
};
const struct mbfl_identify_vtbl vtbl_identify_utf8_kddi_b = {
mbfl_no_encoding_utf8_kddi_b,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_utf8
};
const struct mbfl_identify_vtbl vtbl_identify_utf8_sb = {
mbfl_no_encoding_utf8_sb,
mbfl_filt_ident_common_ctor,
- mbfl_filt_ident_common_dtor,
mbfl_filt_ident_utf8
};
}
}
- /* cleanup */
- /* dtors should be called in reverse order */
- i = num;
- while (--i >= 0) {
- mbfl_identify_filter_cleanup(&flist[i]);
- }
-
efree((void *)flist);
return encoding;
static const struct mbfl_identify_vtbl vtbl_identify_false = {
mbfl_no_encoding_pass,
mbfl_filt_ident_false_ctor,
- mbfl_filt_ident_common_dtor,
- mbfl_filt_ident_false };
-
+ mbfl_filt_ident_false
+};
static const struct mbfl_identify_vtbl *mbfl_identify_filter_list[] = {
&vtbl_identify_utf8,
NULL
};
-
-
/*
* identify filter
*/
vtbl = &vtbl_identify_false;
}
filter->filter_ctor = vtbl->filter_ctor;
- filter->filter_dtor = vtbl->filter_dtor;
filter->filter_function = vtbl->filter_function;
/* constructor */
return;
}
- mbfl_identify_filter_cleanup(filter);
efree((void*)filter);
}
-void mbfl_identify_filter_cleanup(mbfl_identify_filter *filter)
-{
- (*filter->filter_dtor)(filter);
-}
-
void mbfl_filt_ident_common_ctor(mbfl_identify_filter *filter)
{
filter->status = 0;
filter->flag = 0;
}
-void mbfl_filt_ident_common_dtor(mbfl_identify_filter *filter)
-{
- filter->status = 0;
-}
-
int mbfl_filt_ident_false(int c, mbfl_identify_filter *filter)
{
filter->flag = 1; /* bad */
struct _mbfl_identify_filter {
void (*filter_ctor)(mbfl_identify_filter *filter);
- void (*filter_dtor)(mbfl_identify_filter *filter);
int (*filter_function)(int c, mbfl_identify_filter *filter);
int status;
int flag;
struct mbfl_identify_vtbl {
enum mbfl_no_encoding encoding;
void (*filter_ctor)(mbfl_identify_filter *filter);
- void (*filter_dtor)(mbfl_identify_filter *filter);
int (*filter_function)(int c, mbfl_identify_filter *filter);
};
MBFLAPI extern void mbfl_identify_filter_delete(mbfl_identify_filter *filter);
MBFLAPI extern int mbfl_identify_filter_init(mbfl_identify_filter *filter, enum mbfl_no_encoding encoding);
MBFLAPI extern int mbfl_identify_filter_init2(mbfl_identify_filter *filter, const mbfl_encoding *encoding);
-MBFLAPI void mbfl_identify_filter_cleanup(mbfl_identify_filter *filter);
MBFLAPI extern void mbfl_filt_ident_common_ctor(mbfl_identify_filter *filter);
-MBFLAPI extern void mbfl_filt_ident_common_dtor(mbfl_identify_filter *filter);
MBFLAPI extern void mbfl_filt_ident_false_ctor(mbfl_identify_filter *filter);
MBFLAPI extern int mbfl_filt_ident_false(int c, mbfl_identify_filter *filter);