mruby-bigint (mpz_sub): avoid data copy

Since mpz_sub() calls mpz_add() with opposite sign, refer same data from
the original, instead of copying whole data.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2024-10-01 15:48:21 +09:00
parent 363754b5d1
commit 6274f8de43
+3 -3
View File
@@ -329,10 +329,10 @@ mpz_sub(mrb_state *mrb, mpz_t *z, mpz_t *x, mpz_t *y)
mpz_t u;
mpz_init(mrb, &u);
mpz_set(mrb, &u, y);
u.sn = -(u.sn);
u.p = y->p;
u.sz = y->sz;
u.sn = -(y->sn);
mpz_add(mrb, z, x, &u);
mpz_clear(mrb, &u);
}
/* x = y - n */