]> git.kaiwu.me - nginx.git/commitdiff
undo the previous wrong commit
authorIgor Sysoev <igor@sysoev.ru>
Sat, 28 Oct 2006 14:32:39 +0000 (14:32 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Sat, 28 Oct 2006 14:32:39 +0000 (14:32 +0000)
src/core/ngx_rbtree.c
src/core/ngx_rbtree.h
src/core/ngx_slab.c
src/core/ngx_string.c
src/event/ngx_event_timer.c
src/http/ngx_http_parse.c

index 11db4c5c7cb76d6eb29a26019b815a3ff92999b7..3c42be402e59326f1b6ffb2505a7088f328af44f 100644 (file)
@@ -47,7 +47,48 @@ ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree,
         return;
     }
 
-    tree->insert(*root, node, sentinel);
+    /*
+     * The rbtree is currently used by event timers only.  Timer values
+     * 1) are spread in small range, usually several minutes,
+     * 2) and overflow each 49 days, if milliseconds are stored in 32 bits.
+     * The below comparison takes into account that overflow.
+     *
+     * If there will be a necessity to use the rbtree for values with
+     * other comparison rules, then a whole "for ( ;; )" loop should
+     * be made as tree->insert() function.
+     */
+
+    temp = *root;
+
+    for ( ;; ) {
+
+        /*  node->key < temp->key */
+
+        if ((ngx_rbtree_key_int_t) node->key - (ngx_rbtree_key_int_t) temp->key
+            < 0)
+        {
+            if (temp->left == sentinel) {
+                temp->left = node;
+                break;
+            }
+
+            temp = temp->left;
+            continue;
+        }
+
+        if (temp->right == sentinel) {
+            temp->right = node;
+            break;
+        }
+
+        temp = temp->right;
+        continue;
+    }
+
+    node->parent = temp;
+    node->left = sentinel;
+    node->right = sentinel;
+
 
     /* re-balance tree */
 
@@ -95,50 +136,10 @@ ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree,
                 ngx_rbtree_left_rotate(root, sentinel, node->parent->parent);
             }
         }
-    }
 
-    ngx_rbt_black(*root);
-}
-
-
-void
-ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node,
-    ngx_rbtree_node_t *sentinel)
-{
-    for ( ;; ) {
-
-        /*
-         * Timer values
-         * 1) are spread in small range, usually several minutes,
-         * 2) and overflow each 49 days, if milliseconds are stored in 32 bits.
-         * The comparison takes into account that overflow.
-         */
-
-        if ((ngx_rbtree_key_int_t) node->key - (ngx_rbtree_key_int_t) temp->key
-            < 0)
-        {
-            /*  node->key < temp->key */
-
-            if (temp->left == sentinel) {
-                temp->left = node;
-                break;
-            }
-
-            temp = temp->left;
-            continue;
-        }
-
-        if (temp->right == sentinel) {
-            temp->right = node;
-            break;
-        }
-
-        temp = temp->right;
     }
 
-    node->parent = temp;
-    node->left = sentinel;
-    node->right = sentinel;
+    ngx_rbt_black(*root);
 }
 
 
index 73613028afea95a2832dc8b8c82e70543af2dc82..a57ec778d807a12242b2a1c04d872a6c0afa548f 100644 (file)
@@ -29,13 +29,13 @@ struct ngx_rbtree_node_s {
 
 typedef struct ngx_rbtree_s  ngx_rbtree_t;
 
-typedef void (*ngx_rbtree_insert_pt) (ngx_rbtree_node_t *root,
+typedef ngx_rbtree_node_t *(*ngx_rbtree_insert_pt) (ngx_rbtree_node_t *root,
     ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
 
 struct ngx_rbtree_s {
     ngx_rbtree_node_t     *root;
     ngx_rbtree_node_t     *sentinel;
-    ngx_rbtree_insert_pt   insert;
+ /* ngx_rbtree_insert_pt   insert; */
 };
 
 
@@ -43,8 +43,6 @@ void ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree,
     ngx_rbtree_node_t *node);
 void ngx_rbtree_delete(ngx_thread_volatile ngx_rbtree_t *tree,
     ngx_rbtree_node_t *node);
-void ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *root,
-    ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
 
 
 static ngx_inline ngx_rbtree_node_t *
index 44d31f538b36569b77cc296f56acc3988fff1343..7b23d3c1486fd7bed784d8e486dd97ae7ec48420 100644 (file)
@@ -4,41 +4,8 @@
  */
 
 
-typedef struct ngx_slab_map_s  ngx_slab_map_t;
 
-struct ngx_http_slab_map_s {
-    uintptr_t        mask;
-    ngx_slab_elt_t  *next;
-};
-
-
-typedef struct {
-    ngx_slab_elt_t  *slabs;
-
-    ngx_slab_elt_t  *map;
-    size_t           map_size;
-
-    size_t           size;
-
-} ngx_slab_t;
-
-
-void *
-ngx_slab_init(ngx_slab_pool_t *pool, size_t size)
+void *ngx_slab_alloc(ngx_slab_pool_t *pool, size_t size)
 {
-    slab->map_size = (slab->size + ngx_pagesize - 1)
-                          / (ngx_pagesize / sizeof(ngx_slab_map_t));
-
-
-    return NULL;
-}
-
-
-void *
-ngx_slab_alloc(ngx_slab_t *pool, size_t size)
-{
-    n = size - 1;
-
-
-    return NULL;
+   return NULL;
 }
index ad2c9d8c8449efd5a2e46767d3b087e895ed9718..886fe00c6618a9fbf4d6398f445b002ee53e810f 100644 (file)
@@ -688,25 +688,24 @@ ngx_decode_base64(ngx_str_t *dst, ngx_str_t *src)
 {
     size_t          len;
     u_char         *d, *s;
-    static u_char   basis64[] = {
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 62, 77, 77, 77, 63,
-        52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 77, 77, 77, 77, 77, 77,
-        77,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
-        15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 77, 77, 77, 77, 77,
-        77, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-        41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 77, 77, 77, 77, 77,
-
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-        77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77
-    };
+    static u_char   basis64[] =
+        { 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 62, 77, 77, 77, 63,
+          52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 77, 77, 77, 77, 77, 77,
+          77,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
+          15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 77, 77, 77, 77, 77,
+          77, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+          41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 77, 77, 77, 77, 77,
+
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+          77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77 };
 
     for (len = 0; len < src->len; len++) {
         if (src->data[len] == '=') {
@@ -888,69 +887,66 @@ ngx_utf_cpystrn(u_char *dst, u_char *src, size_t n)
 uintptr_t
 ngx_escape_uri(u_char *dst, u_char *src, size_t size, ngx_uint_t type)
 {
-    ngx_uint_t      i, n;
-    uint32_t       *escape;
-    static u_char   hex[] = "0123456789abcdef";
+    ngx_uint_t        i, n;
+    uint32_t         *escape;
+    static u_char     hex[] = "0123456789abcdef";
 
-                    /* " ", "#", "%", "?", %00-%1F, %7F-%FF */
+                      /* " ", "#", "%", "?", %00-%1F, %7F-%FF */
 
-    static uint32_t   uri[] = {
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    static uint32_t   uri[] =
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
 
-                    /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
-        0x80000029, /* 1000 0000 0000 0000  0000 0000 0010 1001 */
+                      /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
+          0x80000029, /* 1000 0000 0000 0000  0000 0000 0010 1001 */
 
-                    /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
-        0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
+                      /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
+          0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
 
-                    /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
-        0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
+                      /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
+          0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
 
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-    };
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */ };
 
-                    /* " ", "#", "%", "+", "?", %00-%1F, %7F-%FF */
+                      /* " ", "#", "%", "+", "?", %00-%1F, %7F-%FF */
 
-    static uint32_t   args[] = {
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    static uint32_t   args[] =
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
 
-                    /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
-        0x80000829, /* 1000 0000 0000 0000  0000 1000 0010 1001 */
+                      /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
+          0x80000829, /* 1000 0000 0000 0000  0000 1000 0010 1001 */
 
-                    /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
-        0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
+                      /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
+          0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
 
-                    /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
-        0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
+                      /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
+          0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
 
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-    };
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */ };
 
-                    /* " ", """, "%", "'", %00-%1F, %7F-%FF */
+                      /* " ", """, "%", "'", %00-%1F, %7F-%FF */
 
-    static uint32_t   html[] = {
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+    static uint32_t   html[] =
+        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
 
-                    /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
-        0x800000ad, /* 0000 0000 0000 0000  0000 0000 1010 1101 */
+                      /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
+          0x800000ad, /* 0000 0000 0000 0000  0000 0000 1010 1101 */
 
-                    /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
-        0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
+                      /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
+          0x00000000, /* 0000 0000 0000 0000  0000 0000 0000 0000 */
 
-                    /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
-        0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
+                      /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
+          0x80000000, /* 1000 0000 0000 0000  0000 0000 0000 0000 */
 
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-        0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-    };
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+          0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */ };
 
 
     switch (type) {
index ababb819aa4be9229c3281785d2962cdda742e31..3eb23f6d390dfcf2b79393917001a4cbd1a54c99 100644 (file)
@@ -23,7 +23,6 @@ ngx_event_timer_init(ngx_log_t *log)
 {
     ngx_event_timer_rbtree.root = &ngx_event_timer_sentinel;
     ngx_event_timer_rbtree.sentinel = &ngx_event_timer_sentinel;
-    ngx_event_timer_rbtree.insert = ngx_rbtree_insert_timer_value;
 
 #if (NGX_THREADS)
 
index 9f0e1b47268615087ec99d6f9649a440fe416cc4..f20a337da62a130d8a81de638f47b229f34f1340 100644 (file)
@@ -9,23 +9,22 @@
 #include <ngx_http.h>
 
 
-static uint32_t   usual[] = {
-    0xffffdbfe, /* 1111 1111 1111 1111  1101 1011 1111 1110 */
+static uint32_t   usual[] =
+    0xffffdbfe, /* 1111 1111 1111 1111  1101 1011 1111 1110 */
 
-                /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
-    0x7fff37d6, /* 0111 1111 1111 1111  0011 0111 1101 0110 */
+                  /* ?>=< ;:98 7654 3210  /.-, +*)( '&%$ #"!  */
+      0x7fff37d6, /* 0111 1111 1111 1111  0011 0111 1101 0110 */
 
-                /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
-    0xefffffff, /* 1110 1111 1111 1111  1111 1111 1111 1111 */
+                  /* _^]\ [ZYX WVUT SRQP  ONML KJIH GFED CBA@ */
+      0xefffffff, /* 1110 1111 1111 1111  1111 1111 1111 1111 */
 
-                /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
-    0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+                  /*  ~}| {zyx wvut srqp  onml kjih gfed cba` */
+      0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
 
-    0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-    0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-    0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-    0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */
-};
+      0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+      0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+      0xffffffff, /* 1111 1111 1111 1111  1111 1111 1111 1111 */
+      0xffffffff  /* 1111 1111 1111 1111  1111 1111 1111 1111 */ };
 
 
 /* gcc, icc, msvc and others compile these switches as an jump table */