diff src/core/ngx_palloc.c @ 2129:25add486e7aa

directio
author Igor Sysoev <igor@sysoev.ru>
date Wed, 30 Jul 2008 12:34:04 +0000
parents 24eebb21b5d2
children 857c161d2768
line wrap: on
line diff
--- a/src/core/ngx_palloc.c
+++ b/src/core/ngx_palloc.c
@@ -195,17 +195,35 @@ ngx_palloc_large(ngx_pool_t *pool, size_
     void              *p;
     ngx_pool_large_t  *large;
 
-#if 0
-    p = ngx_memalign(ngx_pagesize, size, pool->log);
-    if (p == NULL) {
-        return NULL;
-    }
-#else
     p = ngx_alloc(size, pool->log);
     if (p == NULL) {
         return NULL;
     }
-#endif
+
+    large = ngx_palloc(pool, sizeof(ngx_pool_large_t));
+    if (large == NULL) {
+        ngx_free(p);
+        return NULL;
+    }
+
+    large->alloc = p;
+    large->next = pool->large;
+    pool->large = large;
+
+    return p;
+}
+
+
+void *
+ngx_pmemalign(ngx_pool_t *pool, size_t size, size_t alignment)
+{
+    void              *p;
+    ngx_pool_large_t  *large;
+
+    p = ngx_memalign(alignment, size, pool->log);
+    if (p == NULL) {
+        return NULL;
+    }
 
     large = ngx_palloc(pool, sizeof(ngx_pool_large_t));
     if (large == NULL) {