X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fbignum.h;fp=src%2Fbignum.h;h=d5927d3a58120b4a03472ddab2d71c36f04738ca;hb=68324ee855d3dd1428682855f8b2f2d138b034db;hp=1c9d7fb8882c00571d5851bd02d6fdca4da0535e;hpb=f06bcc35bcf930817d5b511579fc568314cf20ef;p=novacoin.git diff --git a/src/bignum.h b/src/bignum.h index 1c9d7fb..d5927d3 100644 --- a/src/bignum.h +++ b/src/bignum.h @@ -59,21 +59,22 @@ public: CBigNum(const CBigNum& b) { - bn = BN_new(); - if (!BN_copy(bn, b.bn)) + BIGNUM *dup = BN_dup(b.bn); + if (!dup) { - BN_clear_free(bn); - throw bignum_error("CBigNum::CBigNum(const CBigNum&) : BN_copy failed"); + throw bignum_error("CBigNum::CBigNum(const CBigNum&) : BN_dup failed"); } + bn = dup; } CBigNum& operator=(const CBigNum& b) { - bn = BN_new(); - if (!BN_copy(bn, b.bn)) { - BN_clear_free(bn); - throw bignum_error("CBigNum::operator= : BN_copy failed"); + BIGNUM *dup = BN_dup(b.bn); + if (!dup) + { + throw bignum_error("CBigNum::operator= : BN_dup failed"); } + bn = dup; return (*this); }