Make tuple default.

This commit is contained in:
inada-n 2009-12-17 15:19:18 +09:00
parent f4c5b15cc6
commit b9f78821d4
2 changed files with 11 additions and 13 deletions

View File

@ -152,7 +152,7 @@ packs = packb
cdef extern from "unpack.h": cdef extern from "unpack.h":
ctypedef struct msgpack_user: ctypedef struct msgpack_user:
int use_tuple int use_list
ctypedef struct template_context: ctypedef struct template_context:
msgpack_user user msgpack_user user
@ -174,7 +174,7 @@ def unpackb(object packed_bytes):
cdef size_t off = 0 cdef size_t off = 0
cdef int ret cdef int ret
template_init(&ctx) template_init(&ctx)
ctx.user.use_tuple = 0 ctx.user.use_list = 0
ret = template_execute(&ctx, p, len(packed_bytes), &off) ret = template_execute(&ctx, p, len(packed_bytes), &off)
if ret == 1: if ret == 1:
return template_data(&ctx) return template_data(&ctx)
@ -230,7 +230,7 @@ cdef class Unpacker(object):
cdef object file_like cdef object file_like
cdef int read_size cdef int read_size
cdef object waiting_bytes cdef object waiting_bytes
cdef int use_tuple cdef int use_list
def __cinit__(self): def __cinit__(self):
self.buf = NULL self.buf = NULL
@ -239,10 +239,10 @@ cdef class Unpacker(object):
if self.buf: if self.buf:
free(self.buf); free(self.buf);
def __init__(self, file_like=None, int read_size=0, use_tuple=0): def __init__(self, file_like=None, int read_size=0, use_list=0):
if read_size == 0: if read_size == 0:
read_size = 1024*1024 read_size = 1024*1024
self.use_tuple = use_tuple self.use_list = use_list
self.file_like = file_like self.file_like = file_like
self.read_size = read_size self.read_size = read_size
self.waiting_bytes = [] self.waiting_bytes = []
@ -251,7 +251,7 @@ cdef class Unpacker(object):
self.buf_head = 0 self.buf_head = 0
self.buf_tail = 0 self.buf_tail = 0
template_init(&self.ctx) template_init(&self.ctx)
self.ctx.user.use_tuple = use_tuple self.ctx.user.use_list = use_list
def feed(self, next_bytes): def feed(self, next_bytes):
if not isinstance(next_bytes, str): if not isinstance(next_bytes, str):

View File

@ -20,7 +20,7 @@
#include "unpack_define.h" #include "unpack_define.h"
typedef struct unpack_user { typedef struct unpack_user {
int use_tuple; int use_list;
} unpack_user; } unpack_user;
@ -136,7 +136,7 @@ static inline int template_callback_false(unpack_user* u, msgpack_unpack_object*
static inline int template_callback_array(unpack_user* u, unsigned int n, msgpack_unpack_object* o) static inline int template_callback_array(unpack_user* u, unsigned int n, msgpack_unpack_object* o)
{ {
PyObject *p = u->use_tuple ? PyTuple_New(n) : PyList_New(n); PyObject *p = u->use_list ? PyList_New(n) : PyTuple_New(n);
if (!p) if (!p)
return -1; return -1;
@ -146,12 +146,10 @@ static inline int template_callback_array(unpack_user* u, unsigned int n, msgpac
static inline int template_callback_array_item(unpack_user* u, unsigned int current, msgpack_unpack_object* c, msgpack_unpack_object o) static inline int template_callback_array_item(unpack_user* u, unsigned int current, msgpack_unpack_object* c, msgpack_unpack_object o)
{ {
if (u->use_tuple) { if (u->use_list)
PyTuple_SET_ITEM(*c, current, o);
}
else {
PyList_SET_ITEM(*c, current, o); PyList_SET_ITEM(*c, current, o);
} else
PyTuple_SET_ITEM(*c, current, o);
return 0; return 0;
} }