From 146ba3b8bcd9f52b0fcc3bc1b55f58b30aee0591 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 3 Nov 2026 20:35:29 +0000 Subject: [PATCH] partial Merge bitcoin-core/gui#806: refactor: Misc int sign change fixes BACKPORT NOTE: Skipped 6d8eecd33a5 (refactor: Avoid implicit-integer-sign-change in createTransaction): Dash's CreateTransaction still returns change_pos as a plain int rather than std::optional, so the converted line does not exist. 05416422d354b29d59558ce227e076028338b442 refactor: Avoid implicit-integer-sign-change in processNewTransaction (MarcoFalke) 321f105d08ddf958881908ea57ad263ffdccd225 refactor: Avoid implicit-signed-integer-truncation-or-sign-change in FreedesktopImage (MarcoFalke) 6d8eecd33a521ea9016be3714d53ea4729b955e6 refactor: Avoid implicit-integer-sign-change in createTransaction (MarcoFalke) Pull request description: This is allowed by the language. However, the `integer` sanitizer complains about it. Thus, fix it, so that the `integer` sanitizer can be used in the future to catch unintended sign changes. Fixes #805. ACKs for top commit: pablomartin4btc: tACK 05416422d354b29d59558ce227e076028338b442 hebasto: ACK 05416422d354b29d59558ce227e076028338b442, I have reviewed the code and it looks OK. Tree-SHA512: eaa941479bd7bee196eb8b31d93b8e1db122410cf62e8ec4cbbec35cfd14cc766081c3df5dd14a228e21ad2678d8b8ba0d2649e5934c994a90ae96d8b264b4ce Co-Authored-By: Claude Opus 5.5 --- src/qt/notificator.cpp | 8 ++++---- src/qt/walletview.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/qt/notificator.cpp b/src/qt/notificator.cpp index cf95c44b23fd..d08e9d551efe 100644 --- a/src/qt/notificator.cpp +++ b/src/qt/notificator.cpp @@ -111,10 +111,10 @@ FreedesktopImage::FreedesktopImage(const QImage &img): for(unsigned int ptr = 0; ptr < num_pixels; ++ptr) { - image[ptr*BYTES_PER_PIXEL+0] = data[ptr] >> 16; // R - image[ptr*BYTES_PER_PIXEL+1] = data[ptr] >> 8; // G - image[ptr*BYTES_PER_PIXEL+2] = data[ptr]; // B - image[ptr*BYTES_PER_PIXEL+3] = data[ptr] >> 24; // A + image[ptr * BYTES_PER_PIXEL + 0] = char(data[ptr] >> 16); // R + image[ptr * BYTES_PER_PIXEL + 1] = char(data[ptr] >> 8); // G + image[ptr * BYTES_PER_PIXEL + 2] = char(data[ptr]); // B + image[ptr * BYTES_PER_PIXEL + 3] = char(data[ptr] >> 24); // A } } diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp index 792f584aee95..f96c30fcc384 100644 --- a/src/qt/walletview.cpp +++ b/src/qt/walletview.cpp @@ -202,7 +202,7 @@ void WalletView::processNewTransaction(const QModelIndex& parent, int start, int } QString date = ttm->index(start, TransactionTableModel::Date, parent).data().toString(); - qint64 amount = ttm->index(start, TransactionTableModel::Amount, parent).data(Qt::EditRole).toULongLong(); + qint64 amount = ttm->index(start, TransactionTableModel::Amount, parent).data(Qt::EditRole).toLongLong(); QString type = ttm->index(start, TransactionTableModel::Type, parent).data().toString(); QString address = ttm->data(index, TransactionTableModel::AddressRole).toString(); QString label = GUIUtil::HtmlEscape(ttm->data(index, TransactionTableModel::LabelRole).toString());