File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed
Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -136,12 +136,20 @@ cdef class Packer(object):
136136 elif PyLong_Check(o):
137137 # PyInt_Check(long) is True for Python 3.
138138 # Sow we should test long before int.
139- if o > 0 :
140- ullval = o
141- ret = msgpack_pack_unsigned_long_long(& self .pk, ullval)
142- else :
143- llval = o
144- ret = msgpack_pack_long_long(& self .pk, llval)
139+ try :
140+ if o > 0 :
141+ ullval = o
142+ ret = msgpack_pack_unsigned_long_long(& self .pk, ullval)
143+ else :
144+ llval = o
145+ ret = msgpack_pack_long_long(& self .pk, llval)
146+ except OverflowError , oe:
147+ if not default_used and self ._default is not None :
148+ o = self ._default(o)
149+ default_used = True
150+ continue
151+ else :
152+ raise
145153 elif PyInt_Check(o):
146154 longval = o
147155 ret = msgpack_pack_long(& self .pk, longval)
You can’t perform that action at this time.
0 commit comments