aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken
diff options
context:
space:
mode:
authorHugo Lima <hugo.lima@openbossa.org>2009-11-18 15:08:01 -0200
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-11-18 15:22:26 -0300
commit403d2ff8d2c073d673a983b87c9813705ca39496 (patch)
tree6eb52259bc12510944938a87fb867d3e9dc50152 /libshiboken
parent75988e117f22d6bd228dc3fa54887bfcf3773b00 (diff)
Use google dense hash table instead of std::map in BindingManager.
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'libshiboken')
-rw-r--r--libshiboken/CMakeLists.txt3
-rw-r--r--libshiboken/bindingmanager.cpp5
-rw-r--r--libshiboken/bindingmanager.h1
3 files changed, 6 insertions, 3 deletions
diff --git a/libshiboken/CMakeLists.txt b/libshiboken/CMakeLists.txt
index 40d6a1203..5118f4f5a 100644
--- a/libshiboken/CMakeLists.txt
+++ b/libshiboken/CMakeLists.txt
@@ -17,7 +17,8 @@ bindingmanager.cpp
)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
- ${PYTHON_INCLUDE_PATH})
+ ${PYTHON_INCLUDE_PATH}
+ ${CMAKE_SOURCE_DIR}/ext/sparsehash)
add_library(libshiboken SHARED ${libshiboken_SRC})
set_property(TARGET libshiboken PROPERTY PREFIX "")
target_link_libraries(libshiboken
diff --git a/libshiboken/bindingmanager.cpp b/libshiboken/bindingmanager.cpp
index 4ae49f868..a848e5e47 100644
--- a/libshiboken/bindingmanager.cpp
+++ b/libshiboken/bindingmanager.cpp
@@ -34,11 +34,12 @@
#include "basewrapper.h"
#include "bindingmanager.h"
+#include "google/dense_hash_map"
namespace Shiboken
{
-typedef std::map<const void*, PyObject*> WrapperMap;
+typedef google::dense_hash_map<const void*, PyObject*> WrapperMap;
struct BindingManager::BindingManagerPrivate {
WrapperMap wrapperMapper;
@@ -47,6 +48,8 @@ struct BindingManager::BindingManagerPrivate {
BindingManager::BindingManager()
{
m_d = new BindingManager::BindingManagerPrivate;
+ m_d->wrapperMapper.set_empty_key((WrapperMap::key_type)0);
+ m_d->wrapperMapper.set_deleted_key((WrapperMap::key_type)1);
}
BindingManager::~BindingManager()
diff --git a/libshiboken/bindingmanager.h b/libshiboken/bindingmanager.h
index 3646a77a2..d082c7b5d 100644
--- a/libshiboken/bindingmanager.h
+++ b/libshiboken/bindingmanager.h
@@ -36,7 +36,6 @@
#define BINDINGMANAGER_H
#include <Python.h>
-#include <map>
#include "shibokenmacros.h"
namespace Shiboken