Changed C_call_scheme to preserve and restore `last_return_code'.
authorStephen Adams <edu/mit/csail/zurich/adams>
Thu, 29 Sep 1994 15:54:27 +0000 (15:54 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Thu, 29 Sep 1994 15:54:27 +0000 (15:54 +0000)
commit78263d45162f9683625dfa8b11f08d2244e8e52d
tree3f296795c739b4f593e2e06feb1154fce280faf1
parentae42bcf4ad231e0d8cc452ff144609fdcac15965
Changed C_call_scheme to preserve and restore `last_return_code'.
This fixes a bug which manifests as an access violation during GC.

The GC bug happened because the incorrect value of `last_return_code'
left after the recursive interpretation caused a negative stack
segment size to be computed.  When this was boxed as an unsigned value
it became an illegal pointer object.  Note that this manifestation
would not have happened with the new tagging scheme.
v7/src/microcode/utils.c