It can be used uninitialized in time management.
Fixes all valgrind errors on './stockfish go wtime 8000 btime 8000 winc 500 binc 500'
This is one (of the many) quirks of C++. There is a subtle difference between:
new Foo
new Foo()
The first statement calls the default constructor (that in case of a POD leaves data members
uninitialized), the second one performs a value-initialization (that in case of POD is
equivalent to a zero-initialization)
See:
http://stackoverflow.com/questions/620137/do-the-parentheses-after-the-type-name-make-a-difference-with-new
http://stackoverflow.com/questions/
5116541/difference-between-creating-object-with-or-without
No functional change.
void ThreadPool::init() {
- push_back(new MainThread);
+ push_back(new MainThread());
read_uci_options();
}
assert(requested > 0);
while (size() < requested)
- push_back(new Thread);
+ push_back(new Thread());
while (size() > requested)
delete back(), pop_back();