allow long ints to be marshalled as ints - no check is made to the incoming

value, so the programmer will have to catch OverflowError.  I'm not sure
what /F's perspective is on this.  Perhaps it should be caught and mapped to
an xmlrpclib-specific exception.  None of the other type-specific dump
methods seem to do any exception handling though.
This commit is contained in:
Skip Montanaro 2001-10-10 15:56:34 +00:00
parent 22e94e2051
commit 5e9c71ba80
1 changed files with 6 additions and 0 deletions

View File

@ -33,6 +33,7 @@
# 2001-09-10 fl Lazy import of urllib, cgi, xmllib (20x import speedup) # 2001-09-10 fl Lazy import of urllib, cgi, xmllib (20x import speedup)
# 2001-10-01 fl Remove containers from memo cache when done with them # 2001-10-01 fl Remove containers from memo cache when done with them
# 2001-10-01 fl Use faster escape method (80% dumps speedup) # 2001-10-01 fl Use faster escape method (80% dumps speedup)
# 2001-10-10 sm Allow long ints to be passed as ints if they don't overflow
# #
# Copyright (c) 1999-2001 by Secret Labs AB. # Copyright (c) 1999-2001 by Secret Labs AB.
# Copyright (c) 1999-2001 by Fredrik Lundh. # Copyright (c) 1999-2001 by Fredrik Lundh.
@ -464,6 +465,11 @@ class Marshaller:
self.write("<value><int>%s</int></value>\n" % value) self.write("<value><int>%s</int></value>\n" % value)
dispatch[IntType] = dump_int dispatch[IntType] = dump_int
def dump_long(self, value):
val = int(value)
self.write("<value><int>%s</int></value>\n" % val)
dispatch[LongType] = dump_long
def dump_double(self, value): def dump_double(self, value):
self.write("<value><double>%s</double></value>\n" % value) self.write("<value><double>%s</double></value>\n" % value)
dispatch[FloatType] = dump_double dispatch[FloatType] = dump_double