From: Kefu Chai Date: Wed, 8 Jun 2016 16:04:44 +0000 (+0800) Subject: librados: get_pool_name() should not return ref of a local variable X-Git-Tag: v11.0.0~259^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ff6bc74250759f571edd9128fe3f2e92f9fff5bb;p=ceph.git librados: get_pool_name() should not return ref of a local variable was introduced by 1a44e6f Signed-off-by: Kefu Chai --- diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index ece7cc516b80..ffbc58198e07 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -1120,7 +1120,7 @@ namespace librados int cache_pin(const std::string& o); int cache_unpin(const std::string& o); - const std::string& get_pool_name() const; + std::string get_pool_name() const; void locator_set_key(const std::string& key); void set_namespace(const std::string& nspace); diff --git a/src/librados/IoCtxImpl.cc b/src/librados/IoCtxImpl.cc index 7cc2799bac2f..1b29d1eeea87 100644 --- a/src/librados/IoCtxImpl.cc +++ b/src/librados/IoCtxImpl.cc @@ -316,11 +316,10 @@ void librados::IoCtxImpl::flush_aio_writes() aio_write_list_lock.Unlock(); } -const string& librados::IoCtxImpl::get_cached_pool_name() +string librados::IoCtxImpl::get_cached_pool_name() { std::string pn; client->pool_get_name(get_id(), &pn); - return pn; } diff --git a/src/librados/IoCtxImpl.h b/src/librados/IoCtxImpl.h index 5cc300e3ff83..19fd0b5b6b7e 100644 --- a/src/librados/IoCtxImpl.h +++ b/src/librados/IoCtxImpl.h @@ -87,7 +87,7 @@ struct librados::IoCtxImpl { return poolid; } - const string& get_cached_pool_name(); + string get_cached_pool_name(); int get_object_hash_position(const std::string& oid, uint32_t *hash_postion); int get_object_pg_hash_position(const std::string& oid, uint32_t *pg_hash_position); diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 7fe1239c39f1..018e53f76e1e 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -1159,7 +1159,7 @@ std::string librados::IoCtx::get_pool_name() return s; } -const std::string& librados::IoCtx::get_pool_name() const +std::string librados::IoCtx::get_pool_name() const { return io_ctx_impl->get_cached_pool_name(); }