summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/MapI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Freeze/MapI.cpp')
-rw-r--r--cpp/src/Freeze/MapI.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/cpp/src/Freeze/MapI.cpp b/cpp/src/Freeze/MapI.cpp
index 3b2f20389b9..15e24028837 100644
--- a/cpp/src/Freeze/MapI.cpp
+++ b/cpp/src/Freeze/MapI.cpp
@@ -15,10 +15,9 @@
#include <Freeze/Catalog.h>
#include <Freeze/CatalogIndexList.h>
#include <IceUtil/UUID.h>
+#include <IceUtil/StringConverter.h>
#include <stdlib.h>
-#include <Ice/StringConverter.h>
-
using namespace std;
using namespace Ice;
using namespace Freeze;
@@ -202,8 +201,12 @@ Freeze::MapHelper::recreate(const Freeze::ConnectionPtr& connection,
Db oldDb(connectionI->dbEnv()->getEnv(), 0);
- oldDb.open(txn, Ice::nativeToUTF8(connectionI->communicator(), oldDbName).c_str(), 0, DB_BTREE,
- DB_THREAD, FREEZE_DB_MODE);
+ //
+ // Berkeley DB expects file paths to be UTF8 encoded.
+ //
+ oldDb.open(txn,
+ IceUtil::nativeToUTF8(IceUtil::getProcessStringConverter(), oldDbName).c_str(),
+ 0, DB_BTREE, DB_THREAD, FREEZE_DB_MODE);
IceUtil::UniquePtr<MapDb> newDb(new MapDb(connectionI, dbName, key, value, keyCompare, indices, true));
@@ -1773,8 +1776,12 @@ Freeze::MapIndexI::MapIndexI(const ConnectionIPtr& connection, MapDb& db,
out << "Opening index \"" << _dbName << "\"";
}
- _db->open(txn, Ice::nativeToUTF8(connection->communicator(), _dbName).c_str(), 0, DB_BTREE, flags,
- FREEZE_DB_MODE);
+ //
+ // Berkeley DB expects file paths to be UTF8 encoded.
+ //
+ _db->open(txn,
+ IceUtil::nativeToUTF8(IceUtil::getProcessStringConverter(), _dbName).c_str(),
+ 0, DB_BTREE, flags, FREEZE_DB_MODE);
//
// To populate empty indices