Author: Carl Friedrich Bolz <cfb...@gmx.de> Branch: optinfo-into-bridges-3 Changeset: r90288:ac91feadb8c0 Date: 2017-02-21 19:36 +0100 http://bitbucket.org/pypy/pypy/changeset/ac91feadb8c0/
Log: store content directly diff --git a/rpython/jit/metainterp/resumecode.py b/rpython/jit/metainterp/resumecode.py --- a/rpython/jit/metainterp/resumecode.py +++ b/rpython/jit/metainterp/resumecode.py @@ -81,13 +81,10 @@ class Writer(object): def __init__(self, size=0): - self.current = objectmodel.newlist_hint(3 * size) - self.grow(size) - self.items = 0 + self.current = objectmodel.newlist_hint(size) def append_short(self, item): - self.items += 1 - append_numbering(self.current, item) + self.current.append(item) def append_int(self, item): short = rffi.cast(rffi.SHORT, item) @@ -95,21 +92,19 @@ return self.append_short(short) def create_numbering(self): - numb = lltype.malloc(NUMBERING, len(self.current)) - for i, elt in enumerate(self.current): + final = objectmodel.newlist_hint(len(self.current) * 3) + for item in self.current: + append_numbering(final, item) + numb = lltype.malloc(NUMBERING, len(final)) + for i, elt in enumerate(final): numb.code[i] = elt return numb - def grow(self, size): - pass + def patch_current_size(self, index): + self.patch(index, len(self.current)) - def patch_current_size(self, index): - # mess :-( - assert rffi.cast(lltype.Signed, self.current[index]) == 0 - l = [] - append_numbering(l, self.items) - self.current = l + self.current[1:] - + def patch(self, index, item): + self.current[index] = item def create_numbering(l): w = Writer() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit