diff --git a/lol-html b/lol-html index 344063e..d64457d 160000 --- a/lol-html +++ b/lol-html @@ -1 +1 @@ -Subproject commit 344063e669731f8151a4b506d85f3fa4cc0fbd8a +Subproject commit d64457d9ff0143deef025d5df7e8586092b9afb7 diff --git a/lolhtml.c b/lolhtml.c index 9843dec..c017c6d 100644 --- a/lolhtml.c +++ b/lolhtml.c @@ -28,25 +28,23 @@ typedef struct { int callback_index; } handler_data_t; -static void push_lol_str_maybe(lua_State *L, lol_html_str_t *s) { - if (s == NULL) { +static void push_lol_str_maybe(lua_State *L, lol_html_str_t s) { + if (s.len == 0) { lua_pushnil(L); } else { - lua_pushlstring(L, s->data, s->len); - lol_html_str_free(*s); - free(s); + lua_pushlstring(L, s.data, s.len); + lol_html_str_free(s); } } static int push_last_error(lua_State *L) { - lol_html_str_t *err = lol_html_take_last_error(); + lol_html_str_t err = lol_html_take_last_error(); lua_pushnil(L); - if (err == NULL) { + if (err.len == 0) { lua_pushliteral(L, "unknown error"); } else { - lua_pushlstring(L, err->data, err->len); - lol_html_str_free(*err); - free(err); + lua_pushlstring(L, err.data, err.len); + lol_html_str_free(err); } return 2; } @@ -263,7 +261,7 @@ static int text_chunk_get_text(lua_State *L) { } static int text_chunk_is_last_in_text_node(lua_State *L) { - const lol_html_text_chunk_t **chunk = check_valid_udata(L, 1, PREFIX "text_chunk"); + lol_html_text_chunk_t **chunk = check_valid_udata(L, 1, PREFIX "text_chunk"); lua_pushboolean(L, lol_html_text_chunk_is_last_in_text_node(*chunk)); return 1; }