Refactoring: C++11 style DISABLE_ bionic marcos
Enable the -std=gnu++11 flag for libstdc++ static and
dynamic libs.
ScopeGuard uses DISABLE_ macros instead of '= delete';
(cherry picked from commit d9ff722661
)
Change-Id: If2573d080770e18b36b56106f2369f7bb682cd3c
This commit is contained in:
parent
61c4147fa8
commit
ef1306d777
@ -1164,6 +1164,7 @@ libstdcxx_common_src_files := \
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_C_INCLUDES := $(libc_common_c_includes)
|
||||
LOCAL_CFLAGS := $(libc_common_cflags)
|
||||
LOCAL_CPPFLAGS := $(libc_common_cppflags)
|
||||
LOCAL_SRC_FILES := $(libstdcxx_common_src_files)
|
||||
LOCAL_MODULE:= libstdc++
|
||||
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
||||
@ -1176,6 +1177,7 @@ include $(BUILD_SHARED_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_C_INCLUDES := $(libc_common_c_includes)
|
||||
LOCAL_CFLAGS := $(libc_common_cflags)
|
||||
LOCAL_CPPFLAGS := $(libc_common_cppflags)
|
||||
LOCAL_SRC_FILES := $(libstdcxx_common_src_files)
|
||||
LOCAL_MODULE:= libstdc++
|
||||
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
|
||||
|
@ -14,8 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef SCOPE_GUARD_H
|
||||
#define SCOPE_GUARD_H
|
||||
#ifndef _SCOPE_GUARD_H
|
||||
#define _SCOPE_GUARD_H
|
||||
|
||||
#include "private/bionic_macros.h"
|
||||
|
||||
// TODO: include explicit std::move when it becomes available
|
||||
template<typename F>
|
||||
@ -40,14 +42,12 @@ class ScopeGuard {
|
||||
F f_;
|
||||
bool active_;
|
||||
|
||||
ScopeGuard() = delete;
|
||||
ScopeGuard(const ScopeGuard&) = delete;
|
||||
ScopeGuard& operator=(const ScopeGuard&) = delete;
|
||||
DISALLOW_IMPLICIT_CONSTRUCTORS(ScopeGuard);
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
ScopeGuard<T> create_scope_guard(T f) {
|
||||
ScopeGuard<T> make_scope_guard(T f) {
|
||||
return ScopeGuard<T>(f);
|
||||
}
|
||||
|
||||
#endif // SCOPE_GUARD_H
|
||||
#endif // _SCOPE_GUARD_H
|
||||
|
@ -20,8 +20,8 @@
|
||||
// DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions.
|
||||
// It goes in the private: declarations in a class.
|
||||
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
|
||||
TypeName(const TypeName&); \
|
||||
void operator=(const TypeName&)
|
||||
TypeName(const TypeName&) = delete; \
|
||||
void operator=(const TypeName&) = delete
|
||||
|
||||
// A macro to disallow all the implicit constructors, namely the
|
||||
// default constructor, copy constructor and operator= functions.
|
||||
@ -30,7 +30,7 @@
|
||||
// that wants to prevent anyone from instantiating it. This is
|
||||
// especially useful for classes containing only static methods.
|
||||
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
|
||||
TypeName(); \
|
||||
TypeName() = delete; \
|
||||
DISALLOW_COPY_AND_ASSIGN(TypeName)
|
||||
|
||||
#define BIONIC_ALIGN(value, alignment) \
|
||||
|
@ -955,7 +955,7 @@ static bool find_libraries(const char* const library_names[], size_t library_nam
|
||||
SoinfoLinkedList found_libs;
|
||||
size_t soinfos_size = 0;
|
||||
|
||||
auto failure_guard = create_scope_guard([&]() {
|
||||
auto failure_guard = make_scope_guard([&]() {
|
||||
// Housekeeping
|
||||
load_tasks.for_each([] (LoadTask* t) {
|
||||
LoadTask::deleter(t);
|
||||
|
@ -145,7 +145,7 @@ TEST(dlfcn, dlopen_check_relocation_dt_needed_order) {
|
||||
// in both dt_needed libraries, the correct relocation should
|
||||
// use the function defined in libtest_relo_check_dt_needed_order_1.so
|
||||
void* handle = nullptr;
|
||||
auto guard = create_scope_guard([&]() {
|
||||
auto guard = make_scope_guard([&]() {
|
||||
dlclose(handle);
|
||||
});
|
||||
|
||||
|
@ -762,7 +762,7 @@ TEST(math, erfcl) {
|
||||
}
|
||||
|
||||
TEST(math, lrint) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
|
||||
@ -786,7 +786,7 @@ TEST(math, lrint) {
|
||||
}
|
||||
|
||||
TEST(math, rint) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
|
||||
@ -816,7 +816,7 @@ TEST(math, rint) {
|
||||
}
|
||||
|
||||
TEST(math, nearbyint) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_UPWARD); // nearbyint/nearbyintf/nearbyintl obey the rounding mode.
|
||||
@ -845,7 +845,7 @@ TEST(math, nearbyint) {
|
||||
}
|
||||
|
||||
TEST(math, lround) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_UPWARD); // lround ignores the rounding mode.
|
||||
@ -855,7 +855,7 @@ TEST(math, lround) {
|
||||
}
|
||||
|
||||
TEST(math, llround) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_UPWARD); // llround ignores the rounding mode.
|
||||
@ -952,7 +952,7 @@ TEST(math, fdiml) {
|
||||
}
|
||||
|
||||
TEST(math, round) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_TOWARDZERO); // round ignores the rounding mode and always rounds away from zero.
|
||||
@ -965,7 +965,7 @@ TEST(math, round) {
|
||||
}
|
||||
|
||||
TEST(math, roundf) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_TOWARDZERO); // roundf ignores the rounding mode and always rounds away from zero.
|
||||
@ -978,7 +978,7 @@ TEST(math, roundf) {
|
||||
}
|
||||
|
||||
TEST(math, roundl) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_TOWARDZERO); // roundl ignores the rounding mode and always rounds away from zero.
|
||||
@ -991,7 +991,7 @@ TEST(math, roundl) {
|
||||
}
|
||||
|
||||
TEST(math, trunc) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_UPWARD); // trunc ignores the rounding mode and always rounds toward zero.
|
||||
@ -1004,7 +1004,7 @@ TEST(math, trunc) {
|
||||
}
|
||||
|
||||
TEST(math, truncf) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_UPWARD); // truncf ignores the rounding mode and always rounds toward zero.
|
||||
@ -1017,7 +1017,7 @@ TEST(math, truncf) {
|
||||
}
|
||||
|
||||
TEST(math, truncl) {
|
||||
auto guard = create_scope_guard([]() {
|
||||
auto guard = make_scope_guard([]() {
|
||||
fesetenv(FE_DFL_ENV);
|
||||
});
|
||||
fesetround(FE_UPWARD); // truncl ignores the rounding mode and always rounds toward zero.
|
||||
|
@ -869,7 +869,7 @@ TEST(pthread, pthread_attr_getstack__main_thread) {
|
||||
#endif
|
||||
EXPECT_EQ(rl.rlim_cur, stack_size);
|
||||
|
||||
auto guard = create_scope_guard([&rl, original_rlim_cur]() {
|
||||
auto guard = make_scope_guard([&rl, original_rlim_cur]() {
|
||||
rl.rlim_cur = original_rlim_cur;
|
||||
ASSERT_EQ(0, setrlimit(RLIMIT_STACK, &rl));
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user