diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-01-23 10:13:00 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-01-23 10:13:00 +0900 |
commit | d2f343cc239e1fa25c9581cf35bada96692c41db (patch) | |
tree | 52a60c0c804e42a990ffb27ca69c54d7467ea814 /indexlib | |
parent | 3b3f9ec8f31978030c17309fae48335bea5c1587 (diff) | |
download | tdepim-d2f343cc239e1fa25c9581cf35bada96692c41db.tar.gz tdepim-d2f343cc239e1fa25c9581cf35bada96692c41db.zip |
Replace auto_ptr
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'indexlib')
-rw-r--r-- | indexlib/boost-compat/config/compiler/gcc.h | 4 | ||||
-rw-r--r-- | indexlib/boost-compat/config/stdlib/roguewave.h | 1 | ||||
-rw-r--r-- | indexlib/boost-compat/scoped_ptr.h | 9 | ||||
-rw-r--r-- | indexlib/boost-compat/shared_ptr.h | 33 | ||||
-rw-r--r-- | indexlib/compressed.cpp | 2 | ||||
-rw-r--r-- | indexlib/create.cpp | 22 | ||||
-rw-r--r-- | indexlib/create.h | 4 | ||||
-rw-r--r-- | indexlib/ifile.cpp | 10 | ||||
-rw-r--r-- | indexlib/ifile.h | 8 | ||||
-rw-r--r-- | indexlib/index.h | 4 | ||||
-rw-r--r-- | indexlib/leafdatavector.cpp | 2 | ||||
-rw-r--r-- | indexlib/main.cpp | 6 | ||||
-rw-r--r-- | indexlib/mempool.h | 6 | ||||
-rw-r--r-- | indexlib/mempool.tcc | 4 | ||||
-rw-r--r-- | indexlib/quotes.cpp | 6 | ||||
-rw-r--r-- | indexlib/quotes.h | 2 | ||||
-rw-r--r-- | indexlib/result.h | 4 | ||||
-rw-r--r-- | indexlib/tests/create-test.cpp | 4 | ||||
-rw-r--r-- | indexlib/tests/mempool-test.cpp | 4 | ||||
-rw-r--r-- | indexlib/tests/tokenizer-test.cpp | 12 | ||||
-rw-r--r-- | indexlib/tokenizer.cpp | 6 | ||||
-rw-r--r-- | indexlib/tokenizer.h | 2 |
22 files changed, 63 insertions, 92 deletions
diff --git a/indexlib/boost-compat/config/compiler/gcc.h b/indexlib/boost-compat/config/compiler/gcc.h index 2c5ad1981..4be7f408e 100644 --- a/indexlib/boost-compat/config/compiler/gcc.h +++ b/indexlib/boost-compat/config/compiler/gcc.h @@ -13,10 +13,6 @@ // GNU C++ compiler setup: -# if __GNUC__ == 2 && __GNUC_MINOR__ == 91 - // egcs 1.1 won't parse shared_ptr.h without this: -# define BOOST_NO_AUTO_PTR -# endif # if __GNUC__ == 2 && __GNUC_MINOR__ < 95 // // Prior to gcc 2.95 member templates only partly diff --git a/indexlib/boost-compat/config/stdlib/roguewave.h b/indexlib/boost-compat/config/stdlib/roguewave.h index ec3d881b5..452b8421f 100644 --- a/indexlib/boost-compat/config/stdlib/roguewave.h +++ b/indexlib/boost-compat/config/stdlib/roguewave.h @@ -73,7 +73,6 @@ // new-style iostreams, and no conformant std::allocator: // #if (BOOST_RWSTD_VER < 0x020000) -# define BOOST_NO_AUTO_PTR # define BOOST_NO_STRINGSTREAM # define BOOST_NO_STD_ALLOCATOR # define BOOST_NO_STD_LOCALE diff --git a/indexlib/boost-compat/scoped_ptr.h b/indexlib/boost-compat/scoped_ptr.h index 60078bf1a..41d4f9b8e 100644 --- a/indexlib/boost-compat/scoped_ptr.h +++ b/indexlib/boost-compat/scoped_ptr.h @@ -15,7 +15,7 @@ #include "checked_delete.h" -#include <memory> // for std::auto_ptr +#include <memory> #include <assert.h> namespace boost @@ -25,7 +25,7 @@ namespace boost // scoped_ptr mimics a built-in pointer except that it guarantees deletion // of the object pointed to, either on destruction of the scoped_ptr or via // an explicit reset(). scoped_ptr is a simple solution for simple needs; -// use shared_ptr or std::auto_ptr if your needs are more complex. +// use shared_ptr or std::unique_ptr if your needs are more complex. template<class T> class scoped_ptr // noncopyable { @@ -46,11 +46,6 @@ public: { } - - explicit scoped_ptr(std::auto_ptr<T> p): ptr(p.release()) // never throws - { - } - ~scoped_ptr() // never throws { boost::checked_delete(ptr); diff --git a/indexlib/boost-compat/shared_ptr.h b/indexlib/boost-compat/shared_ptr.h index c236e3bd7..a242c8299 100644 --- a/indexlib/boost-compat/shared_ptr.h +++ b/indexlib/boost-compat/shared_ptr.h @@ -26,11 +26,11 @@ #include <boost/detail/shared_count.hpp> #include <boost/detail/workaround.hpp> -#include <memory> // for std::auto_ptr -#include <algorithm> // for std::swap -#include <functional> // for std::less -#include <typeinfo> // for std::bad_cast -#include <iosfwd> // for std::basic_ostream +#include <memory> +#include <algorithm> +#include <functional> +#include <typeinfo> +#include <iosfwd> #ifdef BOOST_MSVC // moved here to work around VC++ compiler crash # pragma warning(push) @@ -191,18 +191,6 @@ public: } } -#ifndef BOOST_NO_AUTO_PTR - - template<class Y> - explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn() - { - Y * tmp = r.get(); - pn = detail::shared_count(r); - detail::sp_enable_shared_from_this( pn, tmp, tmp ); - } - -#endif - #if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200) template<class Y> @@ -215,17 +203,6 @@ public: #endif -#ifndef BOOST_NO_AUTO_PTR - - template<class Y> - shared_ptr & operator=(std::auto_ptr<Y> & r) - { - this_type(r).swap(*this); - return *this; - } - -#endif - void reset() // never throws in 1.30+ { this_type().swap(*this); diff --git a/indexlib/compressed.cpp b/indexlib/compressed.cpp index a60c3f06e..9c73c304c 100644 --- a/indexlib/compressed.cpp +++ b/indexlib/compressed.cpp @@ -53,7 +53,7 @@ memory_manager* get_comp_p() { compressed_file::compressed_file( std::string base ): auxdata_( path_concat( base, "table" ) ), - data_( std::auto_ptr<memory_manager>( new mmap_manager( path_concat( base, "data" ) ) ) ) + data_( std::unique_ptr<memory_manager>( new mmap_manager( path_concat( base, "data" ) ) ) ) { if ( auxdata_.empty() ) auxdata_.push_back( 0 ); } diff --git a/indexlib/create.cpp b/indexlib/create.cpp index e47d116a6..c64e21584 100644 --- a/indexlib/create.cpp +++ b/indexlib/create.cpp @@ -56,41 +56,41 @@ indexlib::index_type::type type_of( const char* basename ) { } } -std::auto_ptr<indexlib::index> indexlib::create( const char* basename, indexlib::index_type::type flags ) { +std::unique_ptr<indexlib::index> indexlib::create( const char* basename, indexlib::index_type::type flags ) { using namespace indexlib::version; - if ( type_of( basename ) != indexlib::index_type::none ) return std::auto_ptr<indexlib::index>( 0 ); + if ( type_of( basename ) != indexlib::index_type::none ) return std::unique_ptr<indexlib::index>(); try { if ( basename[ strlen( basename ) - 1 ] == '/' && !isdir( basename ) ) { - if ( !indexlib::detail::mkdir_trailing( basename ) ) return std::auto_ptr<indexlib::index>( 0 ); + if ( !indexlib::detail::mkdir_trailing( basename ) ) return std::unique_ptr<indexlib::index>(); } std::ofstream info( path_concat( basename, "info" ).c_str() ); info << marker << std::endl; info << "version " << major << '.' << minor << "\n"; if ( flags == index_type::quotes ) { info << "quotes" << std::endl; - return std::auto_ptr<indexlib::index>( new quotes( basename ) ); + return std::unique_ptr<indexlib::index>( new quotes( basename ) ); } if ( flags == index_type::ifile ) { info << "ifile" << std::endl; - return std::auto_ptr<indexlib::index>( new ifile( basename ) ); + return std::unique_ptr<indexlib::index>( new ifile( basename ) ); } } catch ( const std::exception& e ) { std::cerr << "index creation failed: " << e.what() << std::endl; } - return std::auto_ptr<indexlib::index>( 0 ); + return std::unique_ptr<indexlib::index>(); } -std::auto_ptr<indexlib::index> indexlib::open( const char* basename, unsigned flags ) { +std::unique_ptr<indexlib::index> indexlib::open( const char* basename, unsigned flags ) { using namespace indexlib; switch ( type_of( basename ) ) { - case index_type::ifile: return std::auto_ptr<indexlib::index>( new ifile( basename ) ); - case index_type::quotes: return std::auto_ptr<indexlib::index>( new quotes( basename ) ); + case index_type::ifile: return std::unique_ptr<indexlib::index>( new ifile( basename ) ); + case index_type::quotes: return std::unique_ptr<indexlib::index>( new quotes( basename ) ); case index_type::none: - if ( flags == open_flags::fail_if_nonexistant ) return std::auto_ptr<indexlib::index>(); + if ( flags == open_flags::fail_if_nonexistant ) return std::unique_ptr<indexlib::index>(); return create( basename, index_type::type( flags ) ); } logfile() << format( "%s:%s: Unexpected code reached!\n" ) % __FILE__ % __LINE__; - return std::auto_ptr<indexlib::index>( 0 ); + return std::unique_ptr<indexlib::index>(); } bool indexlib::exists( const char* basename ) { diff --git a/indexlib/create.h b/indexlib/create.h index e865728e8..18e9929b3 100644 --- a/indexlib/create.h +++ b/indexlib/create.h @@ -57,14 +57,14 @@ namespace indexlib { * This will return something like "new quotes(basename)" but by using this, you do not need to include quotes.h * which needs boost headers also. */ - std::auto_ptr<index> create( const char* basename, index_type::type flags = index_type::quotes ); + std::unique_ptr<index> create( const char* basename, index_type::type flags = index_type::quotes ); namespace open_flags { enum type { none = 0, create_ifile = index_type::ifile, create_quotes = index_type::quotes, fail_if_nonexistant }; } - std::auto_ptr<index> open( const char* basename, unsigned flags = open_flags::fail_if_nonexistant ); + std::unique_ptr<index> open( const char* basename, unsigned flags = open_flags::fail_if_nonexistant ); /** * Removes the index. diff --git a/indexlib/ifile.cpp b/indexlib/ifile.cpp index 5709bb418..8ef5d2c6b 100644 --- a/indexlib/ifile.cpp +++ b/indexlib/ifile.cpp @@ -83,10 +83,10 @@ void ifile::remove_doc( const char* doc ) { // TODO: remove from words_ too if that's the case } -std::auto_ptr<indexlib::result> ifile::everything() const { +std::unique_ptr<indexlib::result> ifile::everything() const { std::vector<unsigned> res( ndocs() ); for ( unsigned i = 0; i != ndocs(); ++i ) res[ i ] = i; - return std::auto_ptr<indexlib::result>( new indexlib::detail::simple_result( res ) ); + return std::unique_ptr<indexlib::result>( new indexlib::detail::simple_result( res ) ); } namespace { @@ -94,13 +94,13 @@ inline bool word_too_small( std::string str ) { return str.size() < 3; } } -std::auto_ptr<indexlib::result> ifile::search( const char* str ) const { +std::unique_ptr<indexlib::result> ifile::search( const char* str ) const { using namespace indexlib::detail; using indexlib::result; assert( str ); if ( !*str ) return everything(); std::vector<std::string> words = break_clean( str ); - if ( words.empty() ) return std::auto_ptr<result>( new empty_result ); + if ( words.empty() ) return std::unique_ptr<result>( new empty_result ); words.erase( std::remove_if( words.begin(), words.end(), &word_too_small ), words.end() ); if ( words.empty() ) return everything(); std::set<unsigned> values = find_word( words[ 0 ] ); @@ -113,7 +113,7 @@ std::auto_ptr<indexlib::result> ifile::search( const char* str ) const { std::set_intersection( now.begin(), now.end(), values.begin(), values.end(), std::inserter( next, next.begin() ) ); next.swap( values ); } - std::auto_ptr<result> r(new simple_result( std::vector<unsigned>( values.begin(), values.end() ) ) ); + std::unique_ptr<result> r(new simple_result( std::vector<unsigned>( values.begin(), values.end() ) ) ); return r; } diff --git a/indexlib/ifile.h b/indexlib/ifile.h index 4cfcf5853..3fcf772e0 100644 --- a/indexlib/ifile.h +++ b/indexlib/ifile.h @@ -43,8 +43,10 @@ struct ifile : public indexlib::index { public: ifile( std::string ); + ifile(ifile const &) = delete; + ifile& operator=(ifile const &) = delete; virtual void add( const char* str, const char* doc ); - virtual std::auto_ptr<indexlib::result> search( const char* ) const; + virtual std::unique_ptr<indexlib::result> search( const char* ) const; virtual unsigned ndocs() const { return docnames_.size(); } virtual std::string lookup_docname( unsigned idx ) const { return docnames_.get( idx ); } @@ -56,7 +58,7 @@ struct ifile : public indexlib::index { private: std::set<unsigned> find_word( std::string ) const; std::vector<std::string> break_clean( const char* ) const; - virtual std::auto_ptr<indexlib::result> everything() const; + virtual std::unique_ptr<indexlib::result> everything() const; static bool invalid_word( std::string ); bool is_stop_word( std::string ) const; @@ -67,7 +69,7 @@ struct ifile : public indexlib::index { stringset words_; stringset stopwords_; leafdatavector files_; - std::auto_ptr<indexlib::detail::tokenizer> tokenizer_; + std::unique_ptr<indexlib::detail::tokenizer> tokenizer_; }; #endif /* _IFILE_INCLUDE_GUARD_LPC_56465465798732 */ diff --git a/indexlib/index.h b/indexlib/index.h index b7c683755..5ffab2d4e 100644 --- a/indexlib/index.h +++ b/indexlib/index.h @@ -61,7 +61,7 @@ struct result { * @return null if the type does not support this or the particular search string makes it impossible to * fulfill the search request. */ - virtual std::auto_ptr<result> search( const char* ) = 0; + virtual std::unique_ptr<result> search( const char* ) = 0; }; struct index { @@ -96,7 +96,7 @@ struct index { /** * Returns all documents matching \param pattern. */ - virtual std::auto_ptr<result> search( const char* pattern ) const = 0; + virtual std::unique_ptr<result> search( const char* pattern ) const = 0; /** * Returns the number of docs indexed. diff --git a/indexlib/leafdatavector.cpp b/indexlib/leafdatavector.cpp index 0dae65555..89b95ab96 100644 --- a/indexlib/leafdatavector.cpp +++ b/indexlib/leafdatavector.cpp @@ -45,7 +45,7 @@ typedef mmap_manager leafdatavector_manager; #endif leafdatavector::leafdatavector( std::string name ): - leafs_( std::auto_ptr<memory_manager>( new leafdatavector_manager( path_concat( name, "leafs" ) ) ) ), + leafs_( std::unique_ptr<memory_manager>( new leafdatavector_manager( path_concat( name, "leafs" ) ) ) ), table_( path_concat( name, "table" ) ) { } diff --git a/indexlib/main.cpp b/indexlib/main.cpp index b86851537..dcedbe1ce 100644 --- a/indexlib/main.cpp +++ b/indexlib/main.cpp @@ -46,7 +46,7 @@ #include <memory> #include <string.h> -typedef std::auto_ptr<indexlib::index> index_smart; +typedef std::unique_ptr<indexlib::index> index_smart; index_smart get_index( std::string name ) { return indexlib::open( name.c_str(), indexlib::open_flags::create_quotes ); @@ -92,8 +92,8 @@ int debug( int argc, char* argv[] ) { std::cout << "compressed_file:\n"; file.print( std::cout ); } else if ( type == "break_up" ) { - std::auto_ptr<tokenizer> tok = get_tokenizer( "latin-1:european" ); - if ( !tok.get() ) { + std::unique_ptr<tokenizer> tok = get_tokenizer( "latin-1:european" ); + if ( !tok ) { std::cerr << "Could not get tokenizer\n"; return 1; } diff --git a/indexlib/mempool.h b/indexlib/mempool.h index acf624948..08be88578 100644 --- a/indexlib/mempool.h +++ b/indexlib/mempool.h @@ -55,7 +55,9 @@ struct mempool /* : boost::noncopyable */ { typedef Traits traits_type; typedef typename traits_type::value_type data_type; typedef typename traits_type::pointer data_typeptr; - explicit mempool( std::auto_ptr<memory_manager> source ); + explicit mempool( std::unique_ptr<memory_manager> &&source ); + mempool(mempool const &) = delete; + mempool& operator=(mempool const &) = delete; /** * Returns a memory block of size \param s. @@ -151,7 +153,7 @@ struct mempool /* : boost::noncopyable */ { bool join( data_typeptr&, unsigned order ); void deallocate( data_typeptr, unsigned order ); - std::auto_ptr<memory_manager> manager_; + std::unique_ptr<memory_manager> manager_; memory_reference<uint32_t> max_order_; }; diff --git a/indexlib/mempool.tcc b/indexlib/mempool.tcc index a130bffee..750209a22 100644 --- a/indexlib/mempool.tcc +++ b/indexlib/mempool.tcc @@ -33,8 +33,8 @@ */ template <typename Traits> -mempool<Traits>::mempool( std::auto_ptr<memory_manager> source ): - manager_( source ), +mempool<Traits>::mempool( std::unique_ptr<memory_manager> &&source ): + manager_( std::move(source) ), max_order_( 0 ) { if ( !manager_->size() ) init_memory(); diff --git a/indexlib/quotes.cpp b/indexlib/quotes.cpp index e4c35db43..abf8915cd 100644 --- a/indexlib/quotes.cpp +++ b/indexlib/quotes.cpp @@ -68,12 +68,12 @@ void quotes::remove_doc( const char* doc ) { impl_.remove_doc( doc ); } -std::auto_ptr<indexlib::result> quotes::search( const char* cstr ) const { +std::unique_ptr<indexlib::result> quotes::search( const char* cstr ) const { std::string str = cstr; if ( str[ 0 ] != '\"' ) return impl_.search( cstr ); str = cstr + 1; // cut " if ( str.size() && str[ str.size() - 1 ] == '\"' ) str.erase( str.size() - 1 ); - std::auto_ptr<indexlib::result> prev = impl_.search( str.c_str() ); + std::unique_ptr<indexlib::result> prev = impl_.search( str.c_str() ); if ( str.find( ' ' ) != std::string::npos ) { indexlib::Match m( str ); std::vector<unsigned> candidates = prev->list(); @@ -86,7 +86,7 @@ std::auto_ptr<indexlib::result> quotes::search( const char* cstr ) const { res.push_back( *first ); } } - return std::auto_ptr<indexlib::result>( new indexlib::detail::simple_result( res ) ); + return std::unique_ptr<indexlib::result>( new indexlib::detail::simple_result( res ) ); } else { return prev; } } diff --git a/indexlib/quotes.h b/indexlib/quotes.h index 7852d0ddf..6604e9a98 100644 --- a/indexlib/quotes.h +++ b/indexlib/quotes.h @@ -42,7 +42,7 @@ struct quotes : public indexlib::index { quotes( std::string ); virtual void add( const char* str, const char* doc ); virtual void remove_doc( const char* doc ); - virtual std::auto_ptr<indexlib::result> search( const char* ) const; + virtual std::unique_ptr<indexlib::result> search( const char* ) const; virtual unsigned ndocs() const { return impl_.ndocs(); } virtual std::string lookup_docname( unsigned d ) const { return impl_.lookup_docname( d ); } diff --git a/indexlib/result.h b/indexlib/result.h index 4cad40d74..dd23f25d2 100644 --- a/indexlib/result.h +++ b/indexlib/result.h @@ -42,7 +42,7 @@ struct simple_result : indexlib::result { simple_result( std::vector<unsigned> r ):res( r ) { } std::vector<unsigned> list() const { return res; } - std::auto_ptr<result> search( const char* ) { return std::auto_ptr<result>( 0 ); } + std::unique_ptr<result> search( const char* ) { return std::unique_ptr<result>(); } private: std::vector<unsigned> res; }; @@ -50,7 +50,7 @@ struct simple_result : indexlib::result { struct empty_result : indexlib::result { public: std::vector<unsigned> list() const { return std::vector<unsigned>(); } - std::auto_ptr<result> search( const char* ) { return std::auto_ptr<result>(); } + std::unique_ptr<result> search( const char* ) { return std::unique_ptr<result>(); } }; } //namespace detail } //namespace indexlib diff --git a/indexlib/tests/create-test.cpp b/indexlib/tests/create-test.cpp index beeb7d5f9..da3c91ca5 100644 --- a/indexlib/tests/create-test.cpp +++ b/indexlib/tests/create-test.cpp @@ -14,8 +14,8 @@ void cleanup() { void simple() { cleanup(); - std::auto_ptr<indexlib::index> ptr = indexlib::create( fname ); - BOOST_CHECK( ptr.get() ); + std::unique_ptr<indexlib::index> ptr = indexlib::create( fname ); + BOOST_CHECK( ptr ); } test_suite* get_suite() { diff --git a/indexlib/tests/mempool-test.cpp b/indexlib/tests/mempool-test.cpp index a0895243c..1c9a4eb61 100644 --- a/indexlib/tests/mempool-test.cpp +++ b/indexlib/tests/mempool-test.cpp @@ -11,7 +11,7 @@ void cleanup() { void deallocate() { cleanup(); - mempool<leaf_data_pool_traits> pool( std::auto_ptr<memory_manager>( new mmap_manager( fname ) ) ); + mempool<leaf_data_pool_traits> pool( std::unique_ptr<memory_manager>( new mmap_manager( fname ) ) ); std::vector<leafdataptr> pointers; for ( int i = 0; i != 32; ++i ) { @@ -33,7 +33,7 @@ void deallocate() { void large() { cleanup(); - mempool<leaf_data_pool_traits> pool( std::auto_ptr<memory_manager>( new mmap_manager( fname ) ) ); + mempool<leaf_data_pool_traits> pool( std::unique_ptr<memory_manager>( new mmap_manager( fname ) ) ); pool.allocate( 4095 ); pool.allocate( 4097 ); diff --git a/indexlib/tests/tokenizer-test.cpp b/indexlib/tests/tokenizer-test.cpp index 372859d90..1354ddcd6 100644 --- a/indexlib/tests/tokenizer-test.cpp +++ b/indexlib/tests/tokenizer-test.cpp @@ -9,8 +9,8 @@ using indexlib::detail::tokenizer; using indexlib::detail::get_tokenizer; void simple() { - std::auto_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" ); - assert(tokenizer.get()); + std::unique_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" ); + assert(tokenizer); std::vector<std::string> tokens = tokenizer->string_to_words( "one ,as, ''#`:ThReE, בבאחי" ); std::vector<std::string> expected; expected.push_back( "ONE" ); @@ -26,8 +26,8 @@ void simple() { } void with_newlines() { - std::auto_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" ); - assert(tokenizer.get()); + std::unique_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" ); + assert(tokenizer); std::vector<std::string> tokens = tokenizer->string_to_words( "one\ntwo\nthree" ); std::vector<std::string> expected; expected.push_back( "ONE" ); @@ -42,8 +42,8 @@ void with_newlines() { } void with_numbers() { - std::auto_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" ); - assert(tokenizer.get()); + std::unique_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" ); + assert(tokenizer); std::vector<std::string> tokens = tokenizer->string_to_words( "one 012 123 four" ); std::vector<std::string> expected; expected.push_back( "ONE" ); diff --git a/indexlib/tokenizer.cpp b/indexlib/tokenizer.cpp index b069c7482..1c1243a7f 100644 --- a/indexlib/tokenizer.cpp +++ b/indexlib/tokenizer.cpp @@ -294,7 +294,7 @@ class latin1_tokenizer : public indexlib::detail::tokenizer { } -std::auto_ptr<indexlib::detail::tokenizer> indexlib::detail::get_tokenizer( std::string name ) { - if ( name == "latin-1:european" ) return std::auto_ptr<indexlib::detail::tokenizer>( new latin1_tokenizer ); - return std::auto_ptr<indexlib::detail::tokenizer>( 0 ); +std::unique_ptr<indexlib::detail::tokenizer> indexlib::detail::get_tokenizer( std::string name ) { + if ( name == "latin-1:european" ) return std::unique_ptr<indexlib::detail::tokenizer>( new latin1_tokenizer ); + return std::unique_ptr<indexlib::detail::tokenizer>(); } diff --git a/indexlib/tokenizer.h b/indexlib/tokenizer.h index 2494f2973..9916df66a 100644 --- a/indexlib/tokenizer.h +++ b/indexlib/tokenizer.h @@ -20,7 +20,7 @@ class tokenizer { virtual std::vector<std::string> do_string_to_words( const char* ) = 0; }; -std::auto_ptr<tokenizer> get_tokenizer( std::string ); +std::unique_ptr<tokenizer> get_tokenizer( std::string ); }} |