diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2013-05-07 14:56:42 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2013-05-07 14:56:42 +0100 |
commit | 8b6665fe0383fd565ac7d7cd6a2bf6243ebc9937 (patch) | |
tree | ffa2ae68c2f87f19cbbd13b7e79a632a682202ee /content | |
parent | 3afd9c97310d58c0c6588d18887244328590731e (diff) | |
parent | f4af0d86e240948bb37a1d318d4e2559f04c6a79 (diff) | |
download | netsurf-8b6665fe0383fd565ac7d7cd6a2bf6243ebc9937.tar.gz netsurf-8b6665fe0383fd565ac7d7cd6a2bf6243ebc9937.tar.bz2 |
Merge branch 'master' of git://git.netsurf-browser.org/netsurf into tlsa/selection-search-refactor
Diffstat (limited to 'content')
-rw-r--r-- | content/content.c | 32 | ||||
-rw-r--r-- | content/llcache.c | 1 |
2 files changed, 16 insertions, 17 deletions
diff --git a/content/content.c b/content/content.c index 74abdbfab..9bf4312ef 100644 --- a/content/content.c +++ b/content/content.c @@ -92,6 +92,7 @@ nserror content__init(struct content *c, const content_handler *handler, if (fallback_charset != NULL) { c->fallback_charset = strdup(fallback_charset); if (c->fallback_charset == NULL) { + free(user_sentinel); return NSERROR_NOMEM; } } @@ -1349,39 +1350,33 @@ struct content *content_clone(struct content *c) */ nserror content__clone(const struct content *c, struct content *nc) { - struct content_user *user_sentinel; nserror error; - user_sentinel = calloc(1, sizeof(struct content_user)); - if (user_sentinel == NULL) { - return NSERROR_NOMEM; - } - error = llcache_handle_clone(c->llcache, &(nc->llcache)); if (error != NSERROR_OK) { return error; } - - llcache_handle_change_callback(nc->llcache, - content_llcache_callback, nc); + + llcache_handle_change_callback(nc->llcache, + content_llcache_callback, nc); nc->mime_type = lwc_string_ref(c->mime_type); nc->handler = c->handler; nc->status = c->status; - + nc->width = c->width; nc->height = c->height; nc->available_width = c->available_width; nc->quirks = c->quirks; - + if (c->fallback_charset != NULL) { nc->fallback_charset = strdup(c->fallback_charset); if (nc->fallback_charset == NULL) { return NSERROR_NOMEM; } } - + if (c->refresh != NULL) { nc->refresh = nsurl_ref(c->refresh); if (nc->refresh == NULL) { @@ -1392,21 +1387,24 @@ nserror content__clone(const struct content *c, struct content *nc) nc->time = c->time; nc->reformat_time = c->reformat_time; nc->size = c->size; - + if (c->title != NULL) { nc->title = strdup(c->title); if (nc->title == NULL) { return NSERROR_NOMEM; } } - + nc->active = c->active; - nc->user_list = user_sentinel; - + nc->user_list = calloc(1, sizeof(struct content_user)); + if (nc->user_list == NULL) { + return NSERROR_NOMEM; + } + memcpy(&(nc->status_message), &(c->status_message), 120); memcpy(&(nc->sub_status), &(c->sub_status), 80); - + nc->locked = c->locked; nc->total_size = c->total_size; nc->http_code = c->http_code; diff --git a/content/llcache.c b/content/llcache.c index 171ae15fc..938f1e8f6 100644 --- a/content/llcache.c +++ b/content/llcache.c @@ -1185,6 +1185,7 @@ static nserror llcache_object_add_user(llcache_object *object, { assert(user->next == NULL); assert(user->prev == NULL); + assert(user->handle != NULL); user->handle->object = object; |