aboutsummaryrefslogtreecommitdiff
path: root/src/util.cpp
AgeCommit message (Collapse)Author
2012-05-11Split synchronization mechanisms from util.{h,cpp}Pieter Wuille
2012-05-09Fix osx buildGavin Andresen
2012-05-09util.h/.ccp: modifiy some comments / rename MyGetSpecialFolderPath() -> ↵Philip Kaufmann
GetSpecialFolderPath(), set fCreate default to true and remove the fallback (not Win >= Vista compatible anyway) / remove namespace fs stuff where only used once / misc small changes'
2012-05-05Merge pull request #1187 from TheBlueMatt/win32_ieWladimir J. van der Laan
Update to require IE 5.1 as it is required to build on mingw64.
2012-05-02Update to require IE 5.1 as it is required on mingw64.Matt Corallo
We already require XP, this just fixes Mingw64 build.
2012-05-01fix compiler warning "suggest parentheses around assignment used as truthPhilip Kaufmann
value [-Wparentheses]" in util.cpp
2012-04-23Merge pull request #1140 from jgarzik/sign-compareJeff Garzik
Address many more sign comparison warnings
2012-04-23Add casts for unavoidable signed/unsigned comparisonsJeff Garzik
At these code sites, it is preferable to cast rather than change a variable's type.
2012-04-22Make GetDataDir return absolute pathsPieter Wuille
2012-04-18Fix bugs on 'unsigned char' platforms.Dwayne C. Litzenberger
In ISO C++, the signedness of 'char' is undefined. On some platforms (e.g. ARM), 'char' is an unsigned type, but some of the code relies on 'char' being signed (as it is on x86). This is indicated by compiler warnings like this: bignum.h: In constructor 'CBigNum::CBigNum(char)': bignum.h:81:59: warning: comparison is always true due to limited range of data type [-Wtype-limits] util.cpp: In function 'bool IsHex(const string&)': util.cpp:427:28: warning: comparison is always false due to limited range of data type [-Wtype-limits] In particular, IsHex erroneously returned true regardless of the input characters, as long as the length of the string was a positive multiple of 2. Note: For testing, it's possible using GCC to force char to be unsigned by adding the -funsigned-char parameter to xCXXFLAGS.
2012-04-18Fix phexdigits[255] is undefined.Dwayne C. Litzenberger
2012-04-17Further reduce header dependenciesPieter Wuille
This commit removes the dependency of serialize.h on PROTOCOL_VERSION, and makes this parameter required instead of implicit. This is much saner, as it makes the places where changing a version number can have an influence obvious.
2012-04-17Remove headers.hPieter Wuille
2012-04-17Remove unused and unreachable codeWladimir J. van der Laan
2012-04-15fix warnings: array subscript is of type 'char' [-Wchar-subscripts]Wladimir J. van der Laan
2012-04-15work around issue in boost::program_options that prevents from compiling in ↵Wladimir J. van der Laan
clang
2012-04-12Merge pull request #1087 from sipa/fix_1086Gavin Andresen
Fix #1086: add /testnet to passed datadir
2012-04-13Fix #1086: add /testnet to passed datadirPieter Wuille
2012-04-12Fix OSX build errors.Gavin Andresen
2012-04-11Use filesystem::path instead of manual string tinkeringPieter Wuille
Where possible, use boost::filesystem::path instead of std::string or char* for filenames. This avoids a lot of manual string tinkering, in favor of path::operator/. GetDataDir is also reworked significantly, it now only keeps two cached directory names (the network-specific data dir, and the root data dir), which are decided through a parameter instead of pre-initialized global variables. Finally, remove the "upgrade from 0.1.5" case where a debug.log in the current directory has to be removed.
2012-04-11Remove path.make_preferred() calls, and fix compiler error in bitcoinrpc RE: ↵Gavin Andresen
boost::system
2012-04-10Merge pull request #1054 from sipa/buildinfoPieter Wuille
Build identification strings
2012-04-10Build identification stringsPieter Wuille
All client version information is moved to version.cpp, which optionally (-DHAVE_BUILD_INFO) includes build.h. build.h is automatically generated on supporting platforms via contrib/genbuild.sh, using git describe. The git export-subst attribute is used to put the commit id statically in version.cpp inside generated archives, and this value is used if no build.h is present. The gitian descriptors are modified to use git archive instead of a copy, to create the src/ directory in the output. This way, src/src/version.cpp will contain the static commit id. To prevent gitian builds from getting the "-dirty" marker in their git-describe generated identifiers, no touching of files or running sed on the makefile is performed anymore. This does not seem to influence determinism.
2012-04-09Merge pull request #1052 from sipa/scopedlocksPieter Wuille
Use scoped locks instead of CRITICAL_BLOCK
2012-04-09Do not report spurious deadlocks caused by TRY_LOCKPieter Wuille
2012-04-09Support for parametrized locks in deadlock detectorPieter Wuille
2012-04-09Use scoped locks instead of CRITICAL_BLOCKPieter Wuille
2012-04-06updated util.cpp to use make_preferred()Philip Kaufmann
2012-04-06Merge pull request #1033 from sipa/waitPieter Wuille
Condition variables instead of polling
2012-04-05removed obsolete boost workaround (boost ticket #4258)Philip Kaufmann
2012-04-04Locking system overhaul, add condition variablesPieter Wuille
This commit simplifies the locking system: CCriticalSection becomes a simple typedef for boost::interprocess::interprocess_recursive_mutex, and CCriticalBlock and CTryCriticalBlock are replaced by a templated CMutexLock, which wraps boost::interprocess::scoped_lock. By making the lock type a template parameter, some critical sections can now be changed to non-recursive locks, which support waiting via condition variables. These are implemented in CWaitableCriticalSection and WAITABLE_CRITICAL_BLOCK. CWaitableCriticalSection is a wrapper for a different Boost mutex, which supports waiting/notification via condition variables. This should enable us to remove much of the used polling code. Important is that this mutex is not recursive, so functions that perform the locking must not call eachother. Because boost::interprocess::scoped_lock does not support assigning and copying, I had to revert to the older CRITICAL_BLOCK macros that use a nested for loop instead of a simple if.
2012-04-04qtui.h/noui.h interface cleanupWladimir J. van der Laan
- rename wxMessageBox, remove redundant arguments to noui/qtui calls - also, add flag to force blocking, modal dialog box for disk space warning etc - clarify function naming - no more special MessageBox needed from AppInit2, as window object is created before calling AppInit2
2012-04-03VC2010 compile fixesWladimir J. van der Laan
2012-03-25remove unused functions from util.h/util.cppWladimir J. van der Laan
2012-02-28Merge branch '2012_02_getspecialfolderpath_overflow' of ↵Gavin Andresen
https://github.com/laanwj/bitcoin
2012-02-26Reworked QT settingsGavin Andresen
2012-02-26Simplify MyGetSpecialFolderPath and fix possible buffer overflow (#901)Wladimir J. van der Laan
2012-02-16Fix #846. Allow negative options such as "nolisten=1" in bitcoin.conf as ↵Chris Moore
well as on the command line.
2012-02-07Update all copyrights to 2012Gavin Andresen
2012-02-07New GetArg features: allow --, and booleans can be -foo or -nofooGavin Andresen
2012-02-07Unit tests for the GetArg() methodsGavin Andresen
2012-02-06-bip16 option (default: 1) to support / not support BIP 16. And bumped ↵Gavin Andresen
default BIP16 switchover date from Feb 15 to Mar 1
2012-01-21Add DEBUG_LOCKCONTENTION, to warn each time a thread waits to lock.Matt Corallo
If compiled with -DDEBUG_LOCKCONTENTION, Bitcoin will print to debug.log each time a thread has to wait for a lock to continue.
2012-01-13Replace OP_EVAL (BIP 12) with Pay-to-script-hash (BIP 16).Gavin Andresen
2012-01-06Network stack refactorPieter Wuille
This introduces CNetAddr and CService, respectively wrapping an (IPv6) IP address and an IP+port combination. This functionality used to be part of CAddress, which also contains network flags and connection attempt information. These extra fields are however not always necessary. These classes, along with logic for creating connections and doing name lookups, are moved to netbase.{h,cpp}, which does not depend on headers.h. Furthermore, CNetAddr is mostly IPv6-ready, though IPv6 functionality is not yet enabled for the application itself.
2012-01-03Fix issue #659, and cleanup wallet/command-line argument handling a bitGavin Andresen
2011-12-21Revert "Use standard C99 (and Qt) types for 64-bit integers"Wladimir J. van der Laan
This reverts commit 21d9f36781604e4ca9fc35dc65265593423b73e9.
2011-12-20Use standard C99 (and Qt) types for 64-bit integersLuke Dashjr
2011-12-20Merge pull request #673 from mndrix/less-time-dataGavin Andresen
Store fewer time samples
2011-12-19Use std::numeric_limits<> for typesafe INT_MAX/etcGavin Andresen