From 403d2ff8d2c073d673a983b87c9813705ca39496 Mon Sep 17 00:00:00 2001 From: Hugo Lima Date: Wed, 18 Nov 2009 15:08:01 -0200 Subject: Use google dense hash table instead of std::map in BindingManager. Reviewed by Marcelo Lira --- libshiboken/CMakeLists.txt | 3 ++- libshiboken/bindingmanager.cpp | 5 ++++- libshiboken/bindingmanager.h | 1 - 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'libshiboken') 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 WrapperMap; +typedef google::dense_hash_map 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 -#include #include "shibokenmacros.h" namespace Shiboken -- cgit v1.2.3