nxt_buf.c (122:d18727e877c6) nxt_buf.c (352:47649fbbcb53)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 284 unchanged lines hidden (view full) ---

293
294 if (parent->retain == 0) {
295 parent->mem.pos = parent->mem.free;
296
297 parent->completion_handler(task, parent, parent->parent);
298 }
299 }
300}
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 284 unchanged lines hidden (view full) ---

293
294 if (parent->retain == 0) {
295 parent->mem.pos = parent->mem.free;
296
297 parent->completion_handler(task, parent, parent->parent);
298 }
299 }
300}
301
302
303nxt_buf_t *
304nxt_buf_make_plain(nxt_mp_t *mp, nxt_buf_t *src, size_t size)
305{
306 nxt_buf_t *b, *i;
307
308 if (nxt_slow_path(size == 0)) {
309 for (i = src; i != NULL; i = i->next) {
310 size += nxt_buf_used_size(i);
311 }
312 }
313
314 b = nxt_buf_mem_alloc(mp, size, 0);
315
316 if (nxt_slow_path(b == NULL)) {
317 return NULL;
318 }
319
320 for (i = src; i != NULL; i = i->next) {
321 if (nxt_slow_path(nxt_buf_mem_free_size(&b->mem) <
322 nxt_buf_used_size(i))) {
323 break;
324 }
325
326 b->mem.free = nxt_cpymem(b->mem.free, i->mem.pos, nxt_buf_used_size(i));
327 }
328
329 return b;
330}