Merge pull request #100 from fsb4000/MinGW
author0xDEADFACE <masmfan@gmail.com>
Mon, 5 Jan 2015 13:38:20 +0000 (16:38 +0300)
committer0xDEADFACE <masmfan@gmail.com>
Mon, 5 Jan 2015 13:38:20 +0000 (16:38 +0300)
fix MinGW build

src/main.h
src/qt/bitcoinunits.cpp
src/qt/bitcoinunits.h
src/qt/coincontroldialog.cpp
src/qt/forms/coincontroldialog.ui
src/scrypt-generic.c
src/scrypt.cpp
src/scrypt.h

index 2cb3ea7..0ef9a9d 100644 (file)
@@ -947,7 +947,7 @@ public:
 
     uint256 GetHash() const
     {
-        return scrypt_blockhash(CVOIDBEGIN(nVersion));
+        return scrypt_blockhash((const uint8_t*)&nVersion);
     }
 
     int64_t GetBlockTime() const
index 496c9f7..216078a 100644 (file)
@@ -85,7 +85,7 @@ int BitcoinUnits::decimals(int unit)
     }
 }
 
-QString BitcoinUnits::format(int unit, qint64 n, bool fPlus)
+QString BitcoinUnits::format(int unit, qint64 n, bool fPlus, uint8_t nNumberOfZeros)
 {
     // Note: not using straight sprintf here because we do NOT want
     // localized number formatting.
@@ -101,7 +101,7 @@ QString BitcoinUnits::format(int unit, qint64 n, bool fPlus)
 
     // Right-trim excess zeros after the decimal point
     int nTrim = 0;
-    for (int i = remainder_str.size()-1; i>=2 && (remainder_str.at(i) == '0'); --i)
+    for (int i = remainder_str.size()-1; i>=nNumberOfZeros && (remainder_str.at(i) == '0'); --i)
         ++nTrim;
     remainder_str.chop(nTrim);
 
@@ -112,9 +112,9 @@ QString BitcoinUnits::format(int unit, qint64 n, bool fPlus)
     return quotient_str + QString(".") + remainder_str;
 }
 
-QString BitcoinUnits::formatWithUnit(int unit, qint64 amount, bool plussign)
+QString BitcoinUnits::formatWithUnit(int unit, qint64 amount, bool plussign, uint8_t nNumberOfZeros)
 {
-    return format(unit, amount, plussign) + QString(" ") + name(unit);
+    return format(unit, amount, plussign, nNumberOfZeros) + QString(" ") + name(unit);
 }
 
 bool BitcoinUnits::parse(int unit, const QString &value, qint64 *val_out)
index 5ac3d47..5ed0c64 100644 (file)
@@ -4,6 +4,7 @@
 #include <QString>
 #include <QAbstractListModel>
 
+#include <stdint.h>
 /** Bitcoin unit definitions. Encapsulates parsing and formatting
    and serves as list model for drop-down selection boxes.
 */
@@ -41,9 +42,9 @@ public:
     //! Number of decimals left
     static int decimals(int unit);
     //! Format as string
-    static QString format(int unit, qint64 amount, bool plussign=false);
+    static QString format(int unit, qint64 amount, bool plussign=false, uint8_t nNumberOfZeros=2);
     //! Format as string (with unit)
-    static QString formatWithUnit(int unit, qint64 amount, bool plussign=false);
+    static QString formatWithUnit(int unit, qint64 amount, bool plussign=false, uint8_t nNumberOfZeros=2);
     //! Parse string to coin amount
     static bool parse(int unit, const QString &value, qint64 *val_out);
     //! Gets title for amount column including current display unit if optionsModel reference available */
index 9df1b0d..fc50c95 100644 (file)
@@ -561,14 +561,14 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
     dialog->findChild<QLabel *>("labelCoinControlChange")       ->setEnabled(nPayAmount > 0);
 
     // stats
-    l1->setText(QString::number(nQuantity));                                 // Quantity
-    l2->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nAmount));        // Amount
-    l3->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nPayFee));        // Fee
-    l4->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nAfterFee));      // After Fee
-    l5->setText(((nBytes > 0) ? "~" : "") + QString::number(nBytes));        // Bytes
-    l6->setText(sPriorityLabel);                                             // Priority
-    l7->setText((fLowOutput ? (fDust ? tr("DUST") : tr("yes")) : tr("no"))); // Low Output / Dust
-    l8->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nChange));        // Change
+    l1->setText(QString::number(nQuantity));                                     // Quantity
+    l2->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nAmount));            // Amount
+    l3->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nPayFee, false, 3));  // Fee
+    l4->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nAfterFee));          // After Fee
+    l5->setText(((nBytes > 0) ? "~" : "") + QString::number(nBytes));            // Bytes
+    l6->setText(sPriorityLabel);                                                 // Priority
+    l7->setText((fLowOutput ? (fDust ? tr("DUST") : tr("yes")) : tr("no")));     // Low Output / Dust
+    l8->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nChange));            // Change
 
     // turn labels "red"
     l5->setStyleSheet((nBytes >= 1000) ? "color:red;" : "");                 // Bytes >= 1000
index e29e58d..0e5e999 100644 (file)
       <bool>false</bool>
      </property>
      <property name="columnCount">
-      <number>11</number>
+      <number>12</number>
      </property>
      <attribute name="headerShowSortIndicator" stdset="0">
       <bool>true</bool>
index 96bcb11..6339c25 100644 (file)
 
 // Generic scrypt_core implementation
 
-static INLINE void xor_salsa8(unsigned int B[16], const unsigned int Bx[16])
+static INLINE void xor_salsa8(uint32_t B[16], const uint32_t Bx[16])
 {
-    unsigned int x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15;
-    int i;
+    uint32_t x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15;
+    int8_t i;
 
     x00 = (B[0] ^= Bx[0]);
     x01 = (B[1] ^= Bx[1]);
@@ -107,9 +107,10 @@ static INLINE void xor_salsa8(unsigned int B[16], const unsigned int Bx[16])
     B[15] += x15;
 }
 
-void scrypt_core(unsigned int *X, unsigned int *V)
+void scrypt_core(uint32_t *X, uint32_t *V)
 {
-    unsigned int i, j, k;
+    uint16_t i, k;
+    uint32_t j;
 
     for (i = 0; i < 1024; i++) {
         memcpy(&V[i * 32], X, 128);
index 06d1d23..5779127 100644 (file)
@@ -8,14 +8,14 @@
 
 #define SCRYPT_BUFFER_SIZE (131072 + 63)
 
-extern "C" void scrypt_core(unsigned int *X, unsigned int *V);
+extern "C" void scrypt_core(uint32_t *X, uint32_t *V);
 
 /* cpu and memory intensive function to transform a 80 byte buffer into a 32 byte output
    scratchpad size needs to be at least 63 + (128 * r * p) + (256 * r + 64) + (128 * r * N) bytes
    r = 1, p = 1, N = 1024
  */
 
-uint256 scrypt_blockhash(const void* input)
+uint256 scrypt_blockhash(const uint8_t* input)
 {
     uint8_t scratchpad[SCRYPT_BUFFER_SIZE];
     uint32_t X[32];
@@ -23,9 +23,9 @@ uint256 scrypt_blockhash(const void* input)
 
     uint32_t *V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63));
 
-    PBKDF2_SHA256((const uint8_t*)input, 80, (const uint8_t*)input, 80, 1, (uint8_t *)X, 128);
+    PBKDF2_SHA256(input, 80, input, 80, 1, (uint8_t *)X, 128);
     scrypt_core(X, V);
-    PBKDF2_SHA256((const uint8_t*)input, 80, (uint8_t *)X, 128, 1, (uint8_t*)&result, 32);
+    PBKDF2_SHA256(input, 80, (uint8_t *)X, 128, 1, (uint8_t*)&result, 32);
 
     return result;
 }
index b28d090..9a648d3 100644 (file)
@@ -7,6 +7,6 @@
 #include "util.h"
 #include "net.h"
 
-uint256 scrypt_blockhash(const void* input);
+uint256 scrypt_blockhash(const uint8_t* input);
 
 #endif // SCRYPT_MINE_H