Lines Matching refs:c

543 void mp_decode_to_lua_type(lua_State *L, mp_cur *c);
545 void mp_decode_to_lua_array(lua_State *L, mp_cur *c, size_t len) { in mp_decode_to_lua_array() argument
552 mp_decode_to_lua_type(L,c); in mp_decode_to_lua_array()
553 if (c->err) return; in mp_decode_to_lua_array()
558 void mp_decode_to_lua_hash(lua_State *L, mp_cur *c, size_t len) { in mp_decode_to_lua_hash() argument
562 mp_decode_to_lua_type(L,c); /* key */ in mp_decode_to_lua_hash()
563 if (c->err) return; in mp_decode_to_lua_hash()
564 mp_decode_to_lua_type(L,c); /* value */ in mp_decode_to_lua_hash()
565 if (c->err) return; in mp_decode_to_lua_hash()
572 void mp_decode_to_lua_type(lua_State *L, mp_cur *c) { in mp_decode_to_lua_type() argument
573 mp_cur_need(c,1); in mp_decode_to_lua_type()
584 switch(c->p[0]) { in mp_decode_to_lua_type()
586 mp_cur_need(c,2); in mp_decode_to_lua_type()
587 lua_pushunsigned(L,c->p[1]); in mp_decode_to_lua_type()
588 mp_cur_consume(c,2); in mp_decode_to_lua_type()
591 mp_cur_need(c,2); in mp_decode_to_lua_type()
592 lua_pushinteger(L,(signed char)c->p[1]); in mp_decode_to_lua_type()
593 mp_cur_consume(c,2); in mp_decode_to_lua_type()
596 mp_cur_need(c,3); in mp_decode_to_lua_type()
598 (c->p[1] << 8) | in mp_decode_to_lua_type()
599 c->p[2]); in mp_decode_to_lua_type()
600 mp_cur_consume(c,3); in mp_decode_to_lua_type()
603 mp_cur_need(c,3); in mp_decode_to_lua_type()
605 (c->p[1] << 8) | in mp_decode_to_lua_type()
606 c->p[2]); in mp_decode_to_lua_type()
607 mp_cur_consume(c,3); in mp_decode_to_lua_type()
610 mp_cur_need(c,5); in mp_decode_to_lua_type()
612 ((uint32_t)c->p[1] << 24) | in mp_decode_to_lua_type()
613 ((uint32_t)c->p[2] << 16) | in mp_decode_to_lua_type()
614 ((uint32_t)c->p[3] << 8) | in mp_decode_to_lua_type()
615 (uint32_t)c->p[4]); in mp_decode_to_lua_type()
616 mp_cur_consume(c,5); in mp_decode_to_lua_type()
619 mp_cur_need(c,5); in mp_decode_to_lua_type()
621 ((int32_t)c->p[1] << 24) | in mp_decode_to_lua_type()
622 ((int32_t)c->p[2] << 16) | in mp_decode_to_lua_type()
623 ((int32_t)c->p[3] << 8) | in mp_decode_to_lua_type()
624 (int32_t)c->p[4]); in mp_decode_to_lua_type()
625 mp_cur_consume(c,5); in mp_decode_to_lua_type()
628 mp_cur_need(c,9); in mp_decode_to_lua_type()
630 ((uint64_t)c->p[1] << 56) | in mp_decode_to_lua_type()
631 ((uint64_t)c->p[2] << 48) | in mp_decode_to_lua_type()
632 ((uint64_t)c->p[3] << 40) | in mp_decode_to_lua_type()
633 ((uint64_t)c->p[4] << 32) | in mp_decode_to_lua_type()
634 ((uint64_t)c->p[5] << 24) | in mp_decode_to_lua_type()
635 ((uint64_t)c->p[6] << 16) | in mp_decode_to_lua_type()
636 ((uint64_t)c->p[7] << 8) | in mp_decode_to_lua_type()
637 (uint64_t)c->p[8]); in mp_decode_to_lua_type()
638 mp_cur_consume(c,9); in mp_decode_to_lua_type()
641 mp_cur_need(c,9); in mp_decode_to_lua_type()
647 ((int64_t)c->p[1] << 56) | in mp_decode_to_lua_type()
648 ((int64_t)c->p[2] << 48) | in mp_decode_to_lua_type()
649 ((int64_t)c->p[3] << 40) | in mp_decode_to_lua_type()
650 ((int64_t)c->p[4] << 32) | in mp_decode_to_lua_type()
651 ((int64_t)c->p[5] << 24) | in mp_decode_to_lua_type()
652 ((int64_t)c->p[6] << 16) | in mp_decode_to_lua_type()
653 ((int64_t)c->p[7] << 8) | in mp_decode_to_lua_type()
654 (int64_t)c->p[8]); in mp_decode_to_lua_type()
655 mp_cur_consume(c,9); in mp_decode_to_lua_type()
659 mp_cur_consume(c,1); in mp_decode_to_lua_type()
663 mp_cur_consume(c,1); in mp_decode_to_lua_type()
667 mp_cur_consume(c,1); in mp_decode_to_lua_type()
670 mp_cur_need(c,5); in mp_decode_to_lua_type()
674 memcpy(&f,c->p+1,4); in mp_decode_to_lua_type()
677 mp_cur_consume(c,5); in mp_decode_to_lua_type()
681 mp_cur_need(c,9); in mp_decode_to_lua_type()
685 memcpy(&d,c->p+1,8); in mp_decode_to_lua_type()
688 mp_cur_consume(c,9); in mp_decode_to_lua_type()
692 mp_cur_need(c,2); in mp_decode_to_lua_type()
694 size_t l = c->p[1]; in mp_decode_to_lua_type()
695 mp_cur_need(c,2+l); in mp_decode_to_lua_type()
696 lua_pushlstring(L,(char*)c->p+2,l); in mp_decode_to_lua_type()
697 mp_cur_consume(c,2+l); in mp_decode_to_lua_type()
701 mp_cur_need(c,3); in mp_decode_to_lua_type()
703 size_t l = (c->p[1] << 8) | c->p[2]; in mp_decode_to_lua_type()
704 mp_cur_need(c,3+l); in mp_decode_to_lua_type()
705 lua_pushlstring(L,(char*)c->p+3,l); in mp_decode_to_lua_type()
706 mp_cur_consume(c,3+l); in mp_decode_to_lua_type()
710 mp_cur_need(c,5); in mp_decode_to_lua_type()
712 size_t l = ((size_t)c->p[1] << 24) | in mp_decode_to_lua_type()
713 ((size_t)c->p[2] << 16) | in mp_decode_to_lua_type()
714 ((size_t)c->p[3] << 8) | in mp_decode_to_lua_type()
715 (size_t)c->p[4]; in mp_decode_to_lua_type()
716 mp_cur_consume(c,5); in mp_decode_to_lua_type()
717 mp_cur_need(c,l); in mp_decode_to_lua_type()
718 lua_pushlstring(L,(char*)c->p,l); in mp_decode_to_lua_type()
719 mp_cur_consume(c,l); in mp_decode_to_lua_type()
723 mp_cur_need(c,3); in mp_decode_to_lua_type()
725 size_t l = (c->p[1] << 8) | c->p[2]; in mp_decode_to_lua_type()
726 mp_cur_consume(c,3); in mp_decode_to_lua_type()
727 mp_decode_to_lua_array(L,c,l); in mp_decode_to_lua_type()
731 mp_cur_need(c,5); in mp_decode_to_lua_type()
733 size_t l = ((size_t)c->p[1] << 24) | in mp_decode_to_lua_type()
734 ((size_t)c->p[2] << 16) | in mp_decode_to_lua_type()
735 ((size_t)c->p[3] << 8) | in mp_decode_to_lua_type()
736 (size_t)c->p[4]; in mp_decode_to_lua_type()
737 mp_cur_consume(c,5); in mp_decode_to_lua_type()
738 mp_decode_to_lua_array(L,c,l); in mp_decode_to_lua_type()
742 mp_cur_need(c,3); in mp_decode_to_lua_type()
744 size_t l = (c->p[1] << 8) | c->p[2]; in mp_decode_to_lua_type()
745 mp_cur_consume(c,3); in mp_decode_to_lua_type()
746 mp_decode_to_lua_hash(L,c,l); in mp_decode_to_lua_type()
750 mp_cur_need(c,5); in mp_decode_to_lua_type()
752 size_t l = ((size_t)c->p[1] << 24) | in mp_decode_to_lua_type()
753 ((size_t)c->p[2] << 16) | in mp_decode_to_lua_type()
754 ((size_t)c->p[3] << 8) | in mp_decode_to_lua_type()
755 (size_t)c->p[4]; in mp_decode_to_lua_type()
756 mp_cur_consume(c,5); in mp_decode_to_lua_type()
757 mp_decode_to_lua_hash(L,c,l); in mp_decode_to_lua_type()
761 if ((c->p[0] & 0x80) == 0) { /* positive fixnum */ in mp_decode_to_lua_type()
762 lua_pushunsigned(L,c->p[0]); in mp_decode_to_lua_type()
763 mp_cur_consume(c,1); in mp_decode_to_lua_type()
764 } else if ((c->p[0] & 0xe0) == 0xe0) { /* negative fixnum */ in mp_decode_to_lua_type()
765 lua_pushinteger(L,(signed char)c->p[0]); in mp_decode_to_lua_type()
766 mp_cur_consume(c,1); in mp_decode_to_lua_type()
767 } else if ((c->p[0] & 0xe0) == 0xa0) { /* fix raw */ in mp_decode_to_lua_type()
768 size_t l = c->p[0] & 0x1f; in mp_decode_to_lua_type()
769 mp_cur_need(c,1+l); in mp_decode_to_lua_type()
770 lua_pushlstring(L,(char*)c->p+1,l); in mp_decode_to_lua_type()
771 mp_cur_consume(c,1+l); in mp_decode_to_lua_type()
772 } else if ((c->p[0] & 0xf0) == 0x90) { /* fix map */ in mp_decode_to_lua_type()
773 size_t l = c->p[0] & 0xf; in mp_decode_to_lua_type()
774 mp_cur_consume(c,1); in mp_decode_to_lua_type()
775 mp_decode_to_lua_array(L,c,l); in mp_decode_to_lua_type()
776 } else if ((c->p[0] & 0xf0) == 0x80) { /* fix map */ in mp_decode_to_lua_type()
777 size_t l = c->p[0] & 0xf; in mp_decode_to_lua_type()
778 mp_cur_consume(c,1); in mp_decode_to_lua_type()
779 mp_decode_to_lua_hash(L,c,l); in mp_decode_to_lua_type()
781 c->err = MP_CUR_ERROR_BADFMT; in mp_decode_to_lua_type()
789 mp_cur c; in mp_unpack_full() local
805 mp_cur_init(&c,(const unsigned char *)s+offset,len-offset); in mp_unpack_full()
809 for(cnt = 0; c.left > 0 && cnt < limit; cnt++) { in mp_unpack_full()
810 mp_decode_to_lua_type(L,&c); in mp_unpack_full()
812 if (c.err == MP_CUR_ERROR_EOF) { in mp_unpack_full()
814 } else if (c.err == MP_CUR_ERROR_BADFMT) { in mp_unpack_full()
823 int offset = len - c.left; in mp_unpack_full()
825 lua_pushinteger(L, c.left == 0 ? -1 : offset); in mp_unpack_full()