[pypy-svn] r55013 - in pypy/branch/hybrid-io/pypy/rpython: lltypesystem ootypesystem

fijal at codespeak.net fijal at codespeak.net
Tue May 20 17:04:47 CEST 2008


Author: fijal
Date: Tue May 20 17:04:46 2008
New Revision: 55013

Modified:
   pypy/branch/hybrid-io/pypy/rpython/lltypesystem/rbuilder.py
   pypy/branch/hybrid-io/pypy/rpython/ootypesystem/rbuilder.py
Log:
(arigo, fijal) Be a bit paranoid about size estimates.


Modified: pypy/branch/hybrid-io/pypy/rpython/lltypesystem/rbuilder.py
==============================================================================
--- pypy/branch/hybrid-io/pypy/rpython/lltypesystem/rbuilder.py	(original)
+++ pypy/branch/hybrid-io/pypy/rpython/lltypesystem/rbuilder.py	Tue May 20 17:04:46 2008
@@ -32,9 +32,13 @@
                                  ('buf', lltype.Ptr(UNICODE)),
                                  adtmeths={'grow':staticAdtMethod(unicodebuilder_grow)})
 
+MAX = 16*1024*1024
+
 class BaseStringBuilderRepr(AbstractStringBuilderRepr):
     @classmethod
     def ll_new(cls, init_size):
+        if init_size < 0 or init_size > MAX:
+            init_size = MAX
         ll_builder = lltype.malloc(cls.lowleveltype.TO)
         ll_builder.allocated = init_size
         ll_builder.used = 0

Modified: pypy/branch/hybrid-io/pypy/rpython/ootypesystem/rbuilder.py
==============================================================================
--- pypy/branch/hybrid-io/pypy/rpython/ootypesystem/rbuilder.py	(original)
+++ pypy/branch/hybrid-io/pypy/rpython/ootypesystem/rbuilder.py	Tue May 20 17:04:46 2008
@@ -4,9 +4,13 @@
 from pypy.rpython.ootypesystem.rstr import string_repr, char_repr,\
      unicode_repr, unichar_repr
 
+MAX = 16*1024*1024
+
 class BaseBuilderRepr(AbstractStringBuilderRepr):
     @classmethod
     def ll_new(cls, init_size):
+        if init_size < 0 or init_size > MAX:
+            init_size = MAX
         return ootype.new(cls.lowleveltype)
 
     @staticmethod



More information about the Pypy-commit mailing list