On 12 January 2017 at 09:08, Frank Wang <fra...@mit.edu> wrote:
> def binaryoperation(operationname):
>     """NOT_RPYTHON"""
>     def opimpl(self, *ignored):
>         operation = getattr(self.space, operationname)
>         w_2 = self.popvalue()
>         w_1 = self.popvalue()
>         w_result = operation(w_1, w_2)
>
>         # union flags in w_1 and w_2 and propagate to result
>         w_1_rbflags = w_1.get_rbflags()
>         w_2_rbflags = w_2.get_rbflags()
>         w_1_rbflags.update(w_2_rbflags)
>         w_result.set_rbflags(w_1_rbflags)
>
>         self.pushvalue(w_result)

It looks like, if an app-level exception is in progress, w_result may
be None.  Try checking for that before setting the flags.

Also:  did you mean to alter w_1's rbflags?  Seems strange that you'd
alter w_1 but not w_2.

-- 
William Leslie

Notice:
Likely much of this email is, by the nature of copyright, covered
under copyright law.  You absolutely MAY reproduce any part of it in
accordance with the copyright law of the nation you are reading this
in.  Any attempt to DENY YOU THOSE RIGHTS would be illegal without
prior contractual agreement.
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to