diff -ur /root/slibo-0.4.4/src/slibo.cpp ./src/slibo.cpp --- /root/slibo-0.4.4/src/slibo.cpp 2003-08-31 19:32:19.000000000 +0200 +++ ./src/slibo.cpp 2006-12-21 00:03:46.000000000 +0100 @@ -548,8 +548,8 @@ engines.insert(enginename, new Engine(enginepath, "debug 19"));*/ } -void slibo::slotPlayerAnalyze(int intenginepath) { - QString enginepath = (char *)intenginepath; +void slibo::slotPlayerAnalyze(int engineIdx) { + QString enginepath = enginenames[engineIdx]; if (!activeGame) return; Engine *olde = 0; @@ -565,7 +565,7 @@ updateEngineMenu(); return; } - if ("human" != QString(enginepath)) { + if ("human" != enginepath) { activeGame->engines.append(new Engine(ws, activeGame, enginepath)); activeGame->engines.current()->setColor( 0 ); } @@ -573,8 +573,8 @@ updateEngineMenu(); } -void slibo::slotPlayerWhite(int intenginepath) { - const char *enginepath = (char *)intenginepath; +void slibo::slotPlayerWhite(int engineIdx) { + QString enginepath = enginenames[engineIdx]; if (!activeGame) return; Engine *olde = 0; @@ -590,15 +590,15 @@ activeGame->engines.remove(olde); olde->end(); } - if ("human" != QString(enginepath)) { + if ("human" != enginepath) { activeGame->engines.append(new Engine(ws, activeGame, enginepath)); activeGame->engines.current()->setColor( WHITE ); } updateEngineMenu(); } -void slibo::slotPlayerBlack(int intenginepath) { - const char *enginepath = (char *)intenginepath; +void slibo::slotPlayerBlack(int engineIdx) { + QString enginepath = enginenames[engineIdx]; if (!activeGame) return; Engine *olde = 0; @@ -614,7 +614,7 @@ activeGame->engines.remove(olde); olde->end(); } - if ("human" != QString(enginepath)) { + if ("human" != enginepath) { activeGame->engines.append(new Engine(ws, activeGame, enginepath)); activeGame->engines.current()->setColor( BLACK ); } @@ -649,23 +649,26 @@ emenu = new KPopupMenu( this ); // QLabel *wtxt = new QLabel("White", menu); wmenu = new KPopupMenu( this ); - for (QStringList::iterator i=enginenames.begin(); i!=enginenames.end(); ++i) { + int idx = 0; + for (QStringList::iterator i=enginenames.begin(); i!=enginenames.end(); ++i, ++idx) { int id=wmenu->insertItem(*i, this, SLOT(slotPlayerWhite(int))); - wmenu->setItemParameter(id, (int)(*i).ascii()); + wmenu->setItemParameter(id, idx); } wmenuid = emenu->insertItem("White: Human", wmenu); bmenu = new KPopupMenu( this ); - for (QStringList::iterator i=enginenames.begin(); i!=enginenames.end(); ++i) { + idx = 0; + for (QStringList::iterator i=enginenames.begin(); i!=enginenames.end(); ++i, ++idx) { int id=bmenu->insertItem(*i, this, SLOT(slotPlayerBlack(int))); - bmenu->setItemParameter(id, (int)(*i).ascii()); + bmenu->setItemParameter(id, idx); } bmenuid = emenu->insertItem("Black: Human", bmenu); amenu = new KPopupMenu( this ); - for (QStringList::iterator i=enginenames.begin(); i!=enginenames.end(); ++i) { + idx = 0; + for (QStringList::iterator i=enginenames.begin(); i!=enginenames.end(); ++i, ++idx) { int id=amenu->insertItem(*i, this, SLOT(slotPlayerAnalyze(int))); - amenu->setItemParameter(id, (int)(*i).ascii()); + amenu->setItemParameter(id, idx); } amenuid = emenu->insertItem("Analyzing:", amenu); diff -ur /root/slibo-0.4.4/src/sliboengine/hash.c ./src/sliboengine/hash.c --- /root/slibo-0.4.4/src/sliboengine/hash.c 2003-08-30 12:09:26.000000000 +0200 +++ ./src/sliboengine/hash.c 2006-12-20 23:45:31.000000000 +0100 @@ -93,7 +93,7 @@ } -void allocHash(HashInfo * h, size_t mem) { +void allocHash(HashInfo * h, unsigned mem) { mem = min(mem, (size_t)sysconf(_SC_PAGESIZE) * (size_t)sysconf(_SC_PHYS_PAGES)); retry: h->count = 1 << lrint(trunc(log2(mem/h->entrySize)));