diff options
-rwxr-xr-x | src/pkg/big/nat.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/pkg/big/nat.go b/src/pkg/big/nat.go index 56f3c444e..668a62689 100755 --- a/src/pkg/big/nat.go +++ b/src/pkg/big/nat.go @@ -528,10 +528,15 @@ func (z nat) divLarge(u, uIn, v nat) (q, r nat) { n := len(v) m := len(uIn) - n + // determine if z can be reused + if alias(z, uIn) || alias(z, v) { + z = nil // z is an alias for uIn or v - cannot reuse + } q = z.make(m + 1) + qhatv := make(nat, n+1) - if alias(u, uIn) { - u = nil // u is an alias for uIn - cannot reuse + if alias(u, uIn) || alias(u, v) { + u = nil // u is an alias for uIn or v - cannot reuse } u = u.make(len(uIn) + 1) u.clear() |