mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-23 04:26:50 +03:00
Don't need to generate string from scratch in nsurl_defragment, just copy.
svn path=/trunk/netsurf/; revision=13103
This commit is contained in:
parent
f980e6015f
commit
c6f13db858
@ -1736,13 +1736,14 @@ nserror nsurl_join(const nsurl *base, const char *rel, nsurl **joined)
|
|||||||
/* exported interface, documented in nsurl.h */
|
/* exported interface, documented in nsurl.h */
|
||||||
nserror nsurl_defragment(const nsurl *url, nsurl **no_frag)
|
nserror nsurl_defragment(const nsurl *url, nsurl **no_frag)
|
||||||
{
|
{
|
||||||
struct nsurl_component_lengths str_len = { 0, 0, 0, 0, 0, 0, 0, 0 };
|
|
||||||
enum nsurl_string_flags str_flags = 0;
|
|
||||||
size_t length;
|
size_t length;
|
||||||
|
char *pos;
|
||||||
|
|
||||||
/* Get the string length and find which parts of url are present */
|
/* Find the change in length from url to new_url */
|
||||||
nsurl__get_string_data(&(url->components), NSURL_COMPLETE, &length,
|
length = url->length;
|
||||||
&str_len, &str_flags);
|
if (url->components.fragment != NULL) {
|
||||||
|
length -= 1 + lwc_string_length(url->components.fragment);
|
||||||
|
}
|
||||||
|
|
||||||
/* Create NetSurf URL object */
|
/* Create NetSurf URL object */
|
||||||
*no_frag = malloc(sizeof(nsurl) + length + 1); /* Add 1 for \0 */
|
*no_frag = malloc(sizeof(nsurl) + length + 1); /* Add 1 for \0 */
|
||||||
@ -1770,8 +1771,10 @@ nserror nsurl_defragment(const nsurl *url, nsurl **no_frag)
|
|||||||
(*no_frag)->length = length;
|
(*no_frag)->length = length;
|
||||||
|
|
||||||
/* Fill out the url string */
|
/* Fill out the url string */
|
||||||
nsurl_get_string(&((*no_frag)->components), (*no_frag)->string,
|
pos = (*no_frag)->string;
|
||||||
&str_len, str_flags);
|
memcpy(pos, url->string, length);
|
||||||
|
pos += length;
|
||||||
|
*pos = '\0';
|
||||||
|
|
||||||
/* Give the URL a reference */
|
/* Give the URL a reference */
|
||||||
(*no_frag)->count = 1;
|
(*no_frag)->count = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user