2020
2121__all__  =  ['BufferWrapper' ]
2222
23+ # 
24+ # Module constants 
25+ # 
26+ 
27+ _MAXSIZE  =  sys .maxsize 
28+ 
2329# 
2430# Inheritable class which wraps an mmap, and from which blocks can be allocated 
2531# 
@@ -108,6 +114,17 @@ def rebuild_arena(size, dupfd):
108114
109115    reduction .register (Arena , reduce_arena )
110116
117+ # 
118+ # Validation helpers 
119+ # 
120+ 
121+ def  _validate_size (size ):
122+     """Validate requested size; raise ValueError if < 0, OverflowError if >= _MAXSIZE.""" 
123+     if  size  <  0 :
124+         raise  ValueError ("Size {0:n} out of range" .format (size ))
125+     if  _MAXSIZE  <=  size :
126+         raise  OverflowError ("Size {0:n} too large" .format (size ))
127+ 
111128# 
112129# Class allowing allocation of chunks of memory from arenas 
113130# 
@@ -155,15 +172,6 @@ def _roundup(n, alignment):
155172        mask  =  alignment  -  1 
156173        return  (n  +  mask ) &  ~ mask 
157174
158-     @staticmethod  
159-     # Bind sys.maxsize once at function definition time to avoid global lookups. 
160-     def  _validate_size (size , _maxsize = sys .maxsize ):
161-         """Validate requested size; raise ValueError if < 0, OverflowError if >= _maxsize.""" 
162-         if  size  <  0 :
163-             raise  ValueError ("Size {0:n} out of range" .format (size ))
164-         if  _maxsize  <=  size :
165-             raise  OverflowError ("Size {0:n} too large" .format (size ))
166- 
167175    def  _new_arena (self , size ):
168176        # Create a new arena with at least the given *size* 
169177        length  =  self ._roundup (max (self ._size , size ), mmap .PAGESIZE )
@@ -304,7 +312,7 @@ def free(self, block):
304312
305313    def  malloc (self , size ):
306314        # return a block of right size (possibly rounded up) 
307-         Heap . _validate_size (size )
315+         _validate_size (size )
308316        if  os .getpid () !=  self ._lastpid :
309317            self .__init__ ()                     # reinitialize after fork 
310318        with  self ._lock :
@@ -330,7 +338,7 @@ class BufferWrapper(object):
330338    _heap  =  Heap ()
331339
332340    def  __init__ (self , size ):
333-         Heap . _validate_size (size )
341+         _validate_size (size )
334342        block  =  BufferWrapper ._heap .malloc (size )
335343        self ._state  =  (block , size )
336344        util .Finalize (self , BufferWrapper ._heap .free , args = (block ,))
0 commit comments