mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-11-29 01:33:16 +03:00
Clean up content_factory_register_handler API -- content handlers no longer use the mime type, so don't require it to be interned up front
svn path=/trunk/netsurf/; revision=12796
This commit is contained in:
parent
50508a6e75
commit
3d71da088b
@ -116,7 +116,8 @@ nserror amiga_dt_anim_init(void)
|
|||||||
|
|
||||||
if(node)
|
if(node)
|
||||||
{
|
{
|
||||||
error = content_factory_register_handler(type,
|
error = content_factory_register_handler(
|
||||||
|
lwc_string_data(type),
|
||||||
&amiga_dt_anim_content_handler);
|
&amiga_dt_anim_content_handler);
|
||||||
|
|
||||||
if (error != NSERROR_OK)
|
if (error != NSERROR_OK)
|
||||||
|
@ -103,7 +103,8 @@ nserror amiga_dt_picture_init(void)
|
|||||||
|
|
||||||
if(node)
|
if(node)
|
||||||
{
|
{
|
||||||
error = content_factory_register_handler(type,
|
error = content_factory_register_handler(
|
||||||
|
lwc_string_data(type),
|
||||||
&amiga_dt_picture_content_handler);
|
&amiga_dt_picture_content_handler);
|
||||||
|
|
||||||
if (error != NSERROR_OK)
|
if (error != NSERROR_OK)
|
||||||
|
@ -100,7 +100,8 @@ nserror amiga_dt_sound_init(void)
|
|||||||
|
|
||||||
if(node)
|
if(node)
|
||||||
{
|
{
|
||||||
error = content_factory_register_handler(type,
|
error = content_factory_register_handler(
|
||||||
|
lwc_string_data(type),
|
||||||
&amiga_dt_sound_content_handler);
|
&amiga_dt_sound_content_handler);
|
||||||
|
|
||||||
if (error != NSERROR_OK)
|
if (error != NSERROR_OK)
|
||||||
|
43
amiga/icon.c
43
amiga/icon.c
@ -97,47 +97,8 @@ static const char *amiga_icon_types[] = {
|
|||||||
"image/x-amiga-icon"
|
"image/x-amiga-icon"
|
||||||
};
|
};
|
||||||
|
|
||||||
static lwc_string *amiga_icon_mime_types[NOF_ELEMENTS(amiga_icon_types)];
|
CONTENT_FACTORY_REGISTER_TYPES(amiga_icon, amiga_icon_types,
|
||||||
|
amiga_icon_content_handler)
|
||||||
nserror amiga_icon_init(void)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
lwc_error lerror;
|
|
||||||
nserror error;
|
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(amiga_icon_mime_types); i++) {
|
|
||||||
lerror = lwc_intern_string(amiga_icon_types[i],
|
|
||||||
strlen(amiga_icon_types[i]),
|
|
||||||
&amiga_icon_mime_types[i]);
|
|
||||||
if (lerror != lwc_error_ok) {
|
|
||||||
error = NSERROR_NOMEM;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = content_factory_register_handler(
|
|
||||||
amiga_icon_mime_types[i],
|
|
||||||
&amiga_icon_content_handler);
|
|
||||||
if (error != NSERROR_OK)
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NSERROR_OK;
|
|
||||||
|
|
||||||
error:
|
|
||||||
amiga_icon_fini();
|
|
||||||
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
void amiga_icon_fini(void)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(amiga_icon_mime_types); i++) {
|
|
||||||
if (amiga_icon_mime_types[i] != NULL)
|
|
||||||
lwc_string_unref(amiga_icon_mime_types[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nserror amiga_icon_create(const content_handler *handler,
|
nserror amiga_icon_create(const content_handler *handler,
|
||||||
lwc_string *imime_type, const http_parameter *params,
|
lwc_string *imime_type, const http_parameter *params,
|
||||||
|
@ -81,7 +81,8 @@ nserror amiga_plugin_hack_init(void)
|
|||||||
{
|
{
|
||||||
LOG(("plugin_hack registered %s\n",lwc_string_data(type)));
|
LOG(("plugin_hack registered %s\n",lwc_string_data(type)));
|
||||||
|
|
||||||
error = content_factory_register_handler(type,
|
error = content_factory_register_handler(
|
||||||
|
lwc_string_data(type),
|
||||||
&amiga_plugin_hack_content_handler);
|
&amiga_plugin_hack_content_handler);
|
||||||
|
|
||||||
if (error != NSERROR_OK)
|
if (error != NSERROR_OK)
|
||||||
|
@ -77,13 +77,7 @@ static nserror register_for_type( NSString *mime )
|
|||||||
return NSERROR_OK;
|
return NSERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
lwc_string *string = NULL;
|
nserror error = content_factory_register_handler( type, &apple_image_content_handler );
|
||||||
lwc_error lerror = lwc_intern_string( type, strlen( type ), &string );
|
|
||||||
if (lerror != lwc_error_ok) return NSERROR_NOMEM;
|
|
||||||
|
|
||||||
nserror error = content_factory_register_handler( string, &apple_image_content_handler );
|
|
||||||
lwc_string_unref( string );
|
|
||||||
|
|
||||||
if (error != NSERROR_OK) return error;
|
if (error != NSERROR_OK) return error;
|
||||||
|
|
||||||
return NSERROR_OK;
|
return NSERROR_OK;
|
||||||
|
@ -71,14 +71,20 @@ void content_factory_fini(void)
|
|||||||
*
|
*
|
||||||
* \note Latest registration for a MIME type wins
|
* \note Latest registration for a MIME type wins
|
||||||
*/
|
*/
|
||||||
nserror content_factory_register_handler(lwc_string *mime_type,
|
nserror content_factory_register_handler(const char *mime_type,
|
||||||
const content_handler *handler)
|
const content_handler *handler)
|
||||||
{
|
{
|
||||||
|
lwc_string *imime_type;
|
||||||
|
lwc_error lerror;
|
||||||
content_handler_entry *entry;
|
content_handler_entry *entry;
|
||||||
bool match;
|
bool match;
|
||||||
|
|
||||||
|
lerror = lwc_intern_string(mime_type, strlen(mime_type), &imime_type);
|
||||||
|
if (lerror != lwc_error_ok)
|
||||||
|
return NSERROR_NOMEM;
|
||||||
|
|
||||||
for (entry = content_handlers; entry != NULL; entry = entry->next) {
|
for (entry = content_handlers; entry != NULL; entry = entry->next) {
|
||||||
if (lwc_string_caseless_isequal(mime_type, entry->mime_type,
|
if (lwc_string_caseless_isequal(imime_type, entry->mime_type,
|
||||||
&match) == lwc_error_ok && match)
|
&match) == lwc_error_ok && match)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -91,7 +97,9 @@ nserror content_factory_register_handler(lwc_string *mime_type,
|
|||||||
entry->next = content_handlers;
|
entry->next = content_handlers;
|
||||||
content_handlers = entry;
|
content_handlers = entry;
|
||||||
|
|
||||||
entry->mime_type = lwc_string_ref(mime_type);
|
entry->mime_type = imime_type;
|
||||||
|
} else {
|
||||||
|
lwc_string_unref(imime_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
entry->handler = handler;
|
entry->handler = handler;
|
||||||
|
@ -28,25 +28,14 @@
|
|||||||
|
|
||||||
#define CONTENT_FACTORY_REGISTER_TYPES(HNAME, HTYPELIST, HHANDLER) \
|
#define CONTENT_FACTORY_REGISTER_TYPES(HNAME, HTYPELIST, HHANDLER) \
|
||||||
\
|
\
|
||||||
static lwc_string *HNAME##_mime_types[NOF_ELEMENTS(HTYPELIST)]; \
|
|
||||||
\
|
|
||||||
nserror HNAME##_init(void) \
|
nserror HNAME##_init(void) \
|
||||||
{ \
|
{ \
|
||||||
uint32_t i; \
|
uint32_t i; \
|
||||||
lwc_error lerror; \
|
|
||||||
nserror error; \
|
nserror error; \
|
||||||
\
|
\
|
||||||
for (i = 0; i < NOF_ELEMENTS(HNAME##_mime_types); i++) { \
|
for (i = 0; i < NOF_ELEMENTS(HTYPELIST); i++) { \
|
||||||
lerror = lwc_intern_string(HTYPELIST[i], \
|
|
||||||
strlen(HTYPELIST[i]), \
|
|
||||||
&HNAME##_mime_types[i]); \
|
|
||||||
if (lerror != lwc_error_ok) { \
|
|
||||||
error = NSERROR_NOMEM; \
|
|
||||||
goto error; \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
error = content_factory_register_handler( \
|
error = content_factory_register_handler( \
|
||||||
HNAME##_mime_types[i], \
|
HTYPELIST[i], \
|
||||||
&HHANDLER); \
|
&HHANDLER); \
|
||||||
if (error != NSERROR_OK) \
|
if (error != NSERROR_OK) \
|
||||||
goto error; \
|
goto error; \
|
||||||
@ -59,16 +48,9 @@ error: \
|
|||||||
\
|
\
|
||||||
return error; \
|
return error; \
|
||||||
} \
|
} \
|
||||||
\
|
/* Pointless */ \
|
||||||
void HNAME##_fini(void) \
|
void HNAME##_fini(void) \
|
||||||
{ \
|
{ \
|
||||||
uint32_t i; \
|
|
||||||
\
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(HNAME##_mime_types); i++) { \
|
|
||||||
if (HNAME##_mime_types[i] != NULL) { \
|
|
||||||
lwc_string_unref(HNAME##_mime_types[i]); \
|
|
||||||
} \
|
|
||||||
} \
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct content;
|
struct content;
|
||||||
@ -78,7 +60,7 @@ typedef struct content_handler content_handler;
|
|||||||
|
|
||||||
void content_factory_fini(void);
|
void content_factory_fini(void);
|
||||||
|
|
||||||
nserror content_factory_register_handler(lwc_string *mime_type,
|
nserror content_factory_register_handler(const char *mime_type,
|
||||||
const content_handler *handler);
|
const content_handler *handler);
|
||||||
|
|
||||||
struct content *content_factory_create_content(struct llcache_handle *llcache,
|
struct content *content_factory_create_content(struct llcache_handle *llcache,
|
||||||
|
21
css/css.c
21
css/css.c
@ -89,7 +89,6 @@ static const content_handler css_content_handler = {
|
|||||||
.no_share = false,
|
.no_share = false,
|
||||||
};
|
};
|
||||||
|
|
||||||
static lwc_string *css_mime_type;
|
|
||||||
static lwc_string *css_charset;
|
static lwc_string *css_charset;
|
||||||
static css_stylesheet *blank_import;
|
static css_stylesheet *blank_import;
|
||||||
|
|
||||||
@ -101,22 +100,15 @@ nserror css_init(void)
|
|||||||
lwc_error lerror;
|
lwc_error lerror;
|
||||||
nserror error;
|
nserror error;
|
||||||
|
|
||||||
lerror = lwc_intern_string("text/css", SLEN("text/css"),
|
|
||||||
&css_mime_type);
|
|
||||||
if (lerror != lwc_error_ok)
|
|
||||||
return NSERROR_NOMEM;
|
|
||||||
|
|
||||||
lerror = lwc_intern_string("charset", SLEN("charset"), &css_charset);
|
lerror = lwc_intern_string("charset", SLEN("charset"), &css_charset);
|
||||||
if (lerror != lwc_error_ok) {
|
if (lerror != lwc_error_ok) {
|
||||||
lwc_string_unref(css_mime_type);
|
|
||||||
return NSERROR_NOMEM;
|
return NSERROR_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
error = content_factory_register_handler(css_mime_type,
|
error = content_factory_register_handler("text/css",
|
||||||
&css_content_handler);
|
&css_content_handler);
|
||||||
if (error != NSERROR_OK) {
|
if (error != NSERROR_OK) {
|
||||||
lwc_string_unref(css_charset);
|
lwc_string_unref(css_charset);
|
||||||
lwc_string_unref(css_mime_type);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
@ -127,12 +119,15 @@ nserror css_init(void)
|
|||||||
*/
|
*/
|
||||||
void css_fini(void)
|
void css_fini(void)
|
||||||
{
|
{
|
||||||
lwc_string_unref(css_charset);
|
if (css_charset != NULL) {
|
||||||
|
lwc_string_unref(css_charset);
|
||||||
|
css_charset = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
lwc_string_unref(css_mime_type);
|
if (blank_import != NULL) {
|
||||||
|
|
||||||
if (blank_import != NULL)
|
|
||||||
css_stylesheet_destroy(blank_import);
|
css_stylesheet_destroy(blank_import);
|
||||||
|
blank_import = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -145,7 +145,6 @@ static const char *html_types[] = {
|
|||||||
"text/html"
|
"text/html"
|
||||||
};
|
};
|
||||||
|
|
||||||
static lwc_string *html_mime_types[NOF_ELEMENTS(html_types)];
|
|
||||||
static lwc_string *html_charset;
|
static lwc_string *html_charset;
|
||||||
|
|
||||||
nserror html_init(void)
|
nserror html_init(void)
|
||||||
@ -160,16 +159,8 @@ nserror html_init(void)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(html_mime_types); i++) {
|
for (i = 0; i < NOF_ELEMENTS(html_types); i++) {
|
||||||
lerror = lwc_intern_string(html_types[i],
|
error = content_factory_register_handler(html_types[i],
|
||||||
strlen(html_types[i]),
|
|
||||||
&html_mime_types[i]);
|
|
||||||
if (lerror != lwc_error_ok) {
|
|
||||||
error = NSERROR_NOMEM;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = content_factory_register_handler(html_mime_types[i],
|
|
||||||
&html_content_handler);
|
&html_content_handler);
|
||||||
if (error != NSERROR_OK)
|
if (error != NSERROR_OK)
|
||||||
goto error;
|
goto error;
|
||||||
@ -185,15 +176,10 @@ error:
|
|||||||
|
|
||||||
void html_fini(void)
|
void html_fini(void)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
if (html_charset != NULL) {
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(html_mime_types); i++) {
|
|
||||||
if (html_mime_types[i] != NULL)
|
|
||||||
lwc_string_unref(html_mime_types[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (html_charset != NULL)
|
|
||||||
lwc_string_unref(html_charset);
|
lwc_string_unref(html_charset);
|
||||||
|
html_charset = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -148,7 +148,6 @@ static const content_handler textplain_content_handler = {
|
|||||||
.no_share = true,
|
.no_share = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
static lwc_string *textplain_mime_type;
|
|
||||||
static lwc_string *textplain_charset;
|
static lwc_string *textplain_charset;
|
||||||
static lwc_string *textplain_default_charset;
|
static lwc_string *textplain_default_charset;
|
||||||
|
|
||||||
@ -160,15 +159,9 @@ nserror textplain_init(void)
|
|||||||
lwc_error lerror;
|
lwc_error lerror;
|
||||||
nserror error;
|
nserror error;
|
||||||
|
|
||||||
lerror = lwc_intern_string("text/plain", SLEN("text/plain"),
|
|
||||||
&textplain_mime_type);
|
|
||||||
if (lerror != lwc_error_ok)
|
|
||||||
return NSERROR_NOMEM;
|
|
||||||
|
|
||||||
lerror = lwc_intern_string("charset", SLEN("charset"),
|
lerror = lwc_intern_string("charset", SLEN("charset"),
|
||||||
&textplain_charset);
|
&textplain_charset);
|
||||||
if (lerror != lwc_error_ok) {
|
if (lerror != lwc_error_ok) {
|
||||||
lwc_string_unref(textplain_mime_type);
|
|
||||||
return NSERROR_NOMEM;
|
return NSERROR_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,16 +169,14 @@ nserror textplain_init(void)
|
|||||||
&textplain_default_charset);
|
&textplain_default_charset);
|
||||||
if (lerror != lwc_error_ok) {
|
if (lerror != lwc_error_ok) {
|
||||||
lwc_string_unref(textplain_charset);
|
lwc_string_unref(textplain_charset);
|
||||||
lwc_string_unref(textplain_mime_type);
|
|
||||||
return NSERROR_NOMEM;
|
return NSERROR_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
error = content_factory_register_handler(textplain_mime_type,
|
error = content_factory_register_handler("text/plain",
|
||||||
&textplain_content_handler);
|
&textplain_content_handler);
|
||||||
if (error != NSERROR_OK) {
|
if (error != NSERROR_OK) {
|
||||||
lwc_string_unref(textplain_default_charset);
|
lwc_string_unref(textplain_default_charset);
|
||||||
lwc_string_unref(textplain_charset);
|
lwc_string_unref(textplain_charset);
|
||||||
lwc_string_unref(textplain_mime_type);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
@ -196,9 +187,15 @@ nserror textplain_init(void)
|
|||||||
*/
|
*/
|
||||||
void textplain_fini(void)
|
void textplain_fini(void)
|
||||||
{
|
{
|
||||||
lwc_string_unref(textplain_default_charset);
|
if (textplain_default_charset != NULL) {
|
||||||
lwc_string_unref(textplain_charset);
|
lwc_string_unref(textplain_default_charset);
|
||||||
lwc_string_unref(textplain_mime_type);
|
textplain_default_charset = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (textplain_charset != NULL) {
|
||||||
|
lwc_string_unref(textplain_charset);
|
||||||
|
textplain_charset = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -129,46 +129,8 @@ static const char *artworks_types[] = {
|
|||||||
"image/x-artworks"
|
"image/x-artworks"
|
||||||
};
|
};
|
||||||
|
|
||||||
static lwc_string *artworks_mime_types[NOF_ELEMENTS(artworks_types)];
|
CONTENT_FACTORY_REGISTER_TYPES(artworks, artworks_types,
|
||||||
|
artworks_content_handler)
|
||||||
nserror artworks_init(void)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
lwc_error lerror;
|
|
||||||
nserror error;
|
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(artworks_mime_types); i++) {
|
|
||||||
lerror = lwc_intern_string(artworks_types[i],
|
|
||||||
strlen(artworks_types[i]),
|
|
||||||
&artworks_mime_types[i]);
|
|
||||||
if (lerror != lwc_error_ok) {
|
|
||||||
error = NSERROR_NOMEM;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = content_factory_register_handler(artworks_mime_types[i],
|
|
||||||
&artworks_content_handler);
|
|
||||||
if (error != NSERROR_OK)
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NSERROR_OK;
|
|
||||||
|
|
||||||
error:
|
|
||||||
artworks_fini();
|
|
||||||
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
void artworks_fini(void)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(artworks_mime_types); i++) {
|
|
||||||
if (artworks_mime_types[i] != NULL)
|
|
||||||
lwc_string_unref(artworks_mime_types[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nserror artworks_create(const content_handler *handler,
|
nserror artworks_create(const content_handler *handler,
|
||||||
lwc_string *imime_type, const http_parameter *params,
|
lwc_string *imime_type, const http_parameter *params,
|
||||||
|
@ -72,46 +72,7 @@ static const char *draw_types[] = {
|
|||||||
"image/x-drawfile"
|
"image/x-drawfile"
|
||||||
};
|
};
|
||||||
|
|
||||||
static lwc_string *draw_mime_types[NOF_ELEMENTS(draw_types)];
|
CONTENT_FACTORY_REGISTER_TYPES(draw, draw_types, draw_content_handler)
|
||||||
|
|
||||||
nserror draw_init(void)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
lwc_error lerror;
|
|
||||||
nserror error;
|
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(draw_mime_types); i++) {
|
|
||||||
lerror = lwc_intern_string(draw_types[i],
|
|
||||||
strlen(draw_types[i]),
|
|
||||||
&draw_mime_types[i]);
|
|
||||||
if (lerror != lwc_error_ok) {
|
|
||||||
error = NSERROR_NOMEM;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = content_factory_register_handler(draw_mime_types[i],
|
|
||||||
&draw_content_handler);
|
|
||||||
if (error != NSERROR_OK)
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NSERROR_OK;
|
|
||||||
|
|
||||||
error:
|
|
||||||
draw_fini();
|
|
||||||
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
void draw_fini(void)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(draw_mime_types); i++) {
|
|
||||||
if (draw_mime_types[i] != NULL)
|
|
||||||
lwc_string_unref(draw_mime_types[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nserror draw_create(const content_handler *handler,
|
nserror draw_create(const content_handler *handler,
|
||||||
lwc_string *imime_type, const http_parameter *params,
|
lwc_string *imime_type, const http_parameter *params,
|
||||||
|
@ -71,46 +71,7 @@ static const char *sprite_types[] = {
|
|||||||
"image/x-riscos-sprite"
|
"image/x-riscos-sprite"
|
||||||
};
|
};
|
||||||
|
|
||||||
static lwc_string *sprite_mime_types[NOF_ELEMENTS(sprite_types)];
|
CONTENT_FACTORY_REGISTER_TYPES(sprite, sprite_types, sprite_content_handler)
|
||||||
|
|
||||||
nserror sprite_init(void)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
lwc_error lerror;
|
|
||||||
nserror error;
|
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(sprite_mime_types); i++) {
|
|
||||||
lerror = lwc_intern_string(sprite_types[i],
|
|
||||||
strlen(sprite_types[i]),
|
|
||||||
&sprite_mime_types[i]);
|
|
||||||
if (lerror != lwc_error_ok) {
|
|
||||||
error = NSERROR_NOMEM;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = content_factory_register_handler(sprite_mime_types[i],
|
|
||||||
&sprite_content_handler);
|
|
||||||
if (error != NSERROR_OK)
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NSERROR_OK;
|
|
||||||
|
|
||||||
error:
|
|
||||||
sprite_fini();
|
|
||||||
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
void sprite_fini(void)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
|
|
||||||
for (i = 0; i < NOF_ELEMENTS(sprite_mime_types); i++) {
|
|
||||||
if (sprite_mime_types[i] != NULL)
|
|
||||||
lwc_string_unref(sprite_mime_types[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nserror sprite_create(const content_handler *handler,
|
nserror sprite_create(const content_handler *handler,
|
||||||
lwc_string *imime_type, const http_parameter *params,
|
lwc_string *imime_type, const http_parameter *params,
|
||||||
|
Loading…
Reference in New Issue
Block a user