comparison src/http/modules/ngx_http_uwsgi_module.c @ 3547:c2da61796410

remove useless copy: key name should be just copied before value length
author Igor Sysoev <igor@sysoev.ru>
date Tue, 01 Jun 2010 17:25:36 +0000
parents 3a9fca8cbdfc
children fc7541a6959d
comparison
equal deleted inserted replaced
3546:3a9fca8cbdfc 3547:c2da61796410
449 449
450 450
451 static ngx_int_t 451 static ngx_int_t
452 ngx_http_uwsgi_create_request(ngx_http_request_t *r) 452 ngx_http_uwsgi_create_request(ngx_http_request_t *r)
453 { 453 {
454 u_char ch, *pos, tmp[2]; 454 u_char ch;
455 size_t key_len, val_len, len; 455 size_t key_len, val_len, len;
456 ngx_uint_t i, n; 456 ngx_uint_t i, n;
457 ngx_buf_t *b; 457 ngx_buf_t *b;
458 ngx_chain_t *cl, *body; 458 ngx_chain_t *cl, *body;
459 ngx_list_part_t *part; 459 ngx_list_part_t *part;
562 le.ip += sizeof(uintptr_t); 562 le.ip += sizeof(uintptr_t);
563 563
564 *e.pos++ = (u_char) (key_len & 0xff); 564 *e.pos++ = (u_char) (key_len & 0xff);
565 *e.pos++ = (u_char) ((key_len >> 8) & 0xff); 565 *e.pos++ = (u_char) ((key_len >> 8) & 0xff);
566 566
567 code = *(ngx_http_script_code_pt *) e.ip;
568 code((ngx_http_script_engine_t *) & e);
569
570 *e.pos++ = (u_char) (val_len & 0xff);
571 *e.pos++ = (u_char) ((val_len >> 8) & 0xff);
572
567 while (*(uintptr_t *) e.ip) { 573 while (*(uintptr_t *) e.ip) {
568 code = *(ngx_http_script_code_pt *) e.ip; 574 code = *(ngx_http_script_code_pt *) e.ip;
569 code((ngx_http_script_engine_t *) & e); 575 code((ngx_http_script_engine_t *) & e);
570 } 576 }
571
572 pos = e.pos - val_len;
573 /* move memory */
574 for (i = 0; i < val_len; i += 2) {
575 e.pos = ngx_cpymem(tmp, pos + i + 2, 2);
576 e.pos = ngx_cpymem(pos + i + 2, pos, 2);
577 e.pos = ngx_cpymem(pos, tmp, 2);
578 }
579
580 e.pos = pos;
581
582 *e.pos++ = (u_char) (val_len & 0xff);
583 *e.pos++ = (u_char) ((val_len >> 8) & 0xff);
584 e.pos += val_len;
585 577
586 e.ip += sizeof(uintptr_t); 578 e.ip += sizeof(uintptr_t);
587 } 579 }
588 580
589 b->last = e.pos; 581 b->last = e.pos;