diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2009-11-18 15:08:01 -0200 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-11-18 15:22:26 -0300 |
commit | 403d2ff8d2c073d673a983b87c9813705ca39496 (patch) | |
tree | 6eb52259bc12510944938a87fb867d3e9dc50152 /libshiboken | |
parent | 75988e117f22d6bd228dc3fa54887bfcf3773b00 (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.txt | 3 | ||||
-rw-r--r-- | libshiboken/bindingmanager.cpp | 5 | ||||
-rw-r--r-- | libshiboken/bindingmanager.h | 1 |
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 |