Author: Anton Gulenko <anton.gule...@googlemail.com> Branch: storage Changeset: r722:55415cc1047d Date: 2014-03-29 00:01 +0100 http://bitbucket.org/pypy/lang-smalltalk/changeset/55415cc1047d/
Log: Changed sentinel-value of Float-storage to a regular float (max_float). The longlong/lltype cast operations take too long. diff --git a/spyvm/shadow.py b/spyvm/shadow.py --- a/spyvm/shadow.py +++ b/spyvm/shadow.py @@ -1,4 +1,4 @@ -import weakref +import sys, weakref from spyvm import model, constants, error, wrapper, version from spyvm.version import elidable_for_version, constant_for_version from rpython.tool.pairtype import extendabletype @@ -141,9 +141,7 @@ class FloatOrNilStorageShadow(AbstractStorageShadow): repr_classname = "FloatOrNilStorageShadow" - # TODO -- use another value... something like max_float? - nil_value = runpack("d", "\x10\x00\x00\x00\x00\x00\xf8\x7f") - nil_value_longlong = longlong2float.float2longlong(nil_value) + nil_value = sys.float_info.max wrapper_class = model.W_Float import_from_mixin(AbstractValueOrNilStorageMixin) @@ -152,7 +150,7 @@ return _value_or_nil_can_handle(FloatOrNilStorageShadow, space, w_val) @staticmethod def is_nil_value(val): - return longlong2float.float2longlong(val) == FloatOrNilStorageShadow.nil_value_longlong + return val == FloatOrNilStorageShadow.nil_value @staticmethod def wrap(space, val): return space.wrap_float(val) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit