From 9906cea14ccb44bb27ecfe08c772dd33c5333f78 Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 19 May 2022 17:05:42 +0200 Subject: [PATCH] Box value encoded in a variant to reduce enum stack space before ``` print-type-size type: `util::psbt::error::Error`: 120 bytes, alignment: 8 bytes print-type-size discriminant: 1 bytes print-type-size variant `CombineInconsistentKeySources`: 115 bytes print-type-size padding: 3 bytes print-type-size field `.0`: 112 bytes, alignment: 4 bytes print-type-size variant `InvalidKey`: 39 bytes print-type-size padding: 7 bytes print-type-size field `.0`: 32 bytes, alignment: 8 bytes ``` after ``` print-type-size type: `util::psbt::error::Error`: 40 bytes, alignment: 8 bytes print-type-size discriminant: 1 bytes print-type-size variant `InvalidKey`: 39 bytes print-type-size padding: 7 bytes print-type-size field `.0`: 32 bytes, alignment: 8 bytes print-type-size variant `DuplicateKey`: 39 bytes print-type-size padding: 7 bytes print-type-size field `.0`: 32 bytes, alignment: 8 bytes ``` --- src/util/psbt/error.rs | 2 +- src/util/psbt/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/psbt/error.rs b/src/util/psbt/error.rs index a5841fbda0..b068084564 100644 --- a/src/util/psbt/error.rs +++ b/src/util/psbt/error.rs @@ -80,7 +80,7 @@ pub enum Error { }, /// Conflicting data during combine procedure: /// global extended public key has inconsistent key sources - CombineInconsistentKeySources(ExtendedPubKey), + CombineInconsistentKeySources(Box), /// Serialization error in bitcoin consensus-encoded structures ConsensusEncoding, } diff --git a/src/util/psbt/mod.rs b/src/util/psbt/mod.rs index a067a2a4e5..49552b8476 100644 --- a/src/util/psbt/mod.rs +++ b/src/util/psbt/mod.rs @@ -194,7 +194,7 @@ impl PartiallySignedTransaction { entry.insert((fingerprint1, derivation1)); continue } - return Err(Error::CombineInconsistentKeySources(xpub)); + return Err(Error::CombineInconsistentKeySources(Box::new(xpub))); } } }