From 67e65a7959be0e3dee2fd2023a2c23217c50c1d8 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 17 Mar 2009 20:51:33 +0100 Subject: page: added page_new_concat() --- src/page.c | 11 +++++++++++ src/page.h | 9 +++++++++ 2 files changed, 20 insertions(+) (limited to 'src') diff --git a/src/page.c b/src/page.c index a4f52ae4..5ea03cd0 100644 --- a/src/page.c +++ b/src/page.c @@ -51,6 +51,17 @@ page_new_copy(const void *data, size_t size) return page; } +struct page * +page_new_concat(const struct page *a, const struct page *b) +{ + struct page *page = page_new(a->size + b->size); + + memcpy(page->data, a->data, a->size); + memcpy(page->data + a->size, b->data, b->size); + + return page; +} + void page_ref(struct page *page) { diff --git a/src/page.h b/src/page.h index 6bee4996..a150e312 100644 --- a/src/page.h +++ b/src/page.h @@ -64,6 +64,15 @@ struct page { struct page * page_new_copy(const void *data, size_t size); +/** + * Concatenates two pages to a new page. + * + * @param a the first page + * @param b the second page, which is appended + */ +struct page * +page_new_concat(const struct page *a, const struct page *b); + /** * Increases the reference counter. * -- cgit v1.2.3