OSDN Git Service

Stop using __system_property_area__
authorVictor Khimenko <khim@google.com>
Wed, 1 Mar 2017 19:36:13 +0000 (20:36 +0100)
committerVictor Khimenko <khim@google.com>
Wed, 1 Mar 2017 19:43:42 +0000 (20:43 +0100)
Apparently that "backdoor" is no longer needed - the proper way is
to reinitialize properties:
    https://android-review.googlesource.com/#/c/181794/24/tests/system_properties_test.cpp

Also removes mentions of libnativehelper test (it no longer uses
__system_property_area__) and removes useless "extern" declaration
(actual use was removed long ago).

Test: refactoring CL, existsing tests still pass

BUG=21852512
BUG=34114501

Change-Id: I2223cab2fcb671ea180ad4470a7aba5c9cd20bd8

benchmarks/property_benchmark.cpp
libc/bionic/system_properties.cpp
tests/system_properties_test.cpp

index ef5f225..97eb832 100644 (file)
@@ -28,8 +28,6 @@
 
 #include <benchmark/benchmark.h>
 
-extern void* __system_property_area__;
-
 // Do not exceed 512, that is about the largest number of properties
 // that can be created with the current property area size.
 #define TEST_NUM_PROPS \
@@ -53,9 +51,6 @@ struct LocalPropertyTestState {
       return;
     }
 
-    old_pa = __system_property_area__;
-    __system_property_area__ = NULL;
-
     pa_dirname = dirname;
     pa_filename = pa_dirname + "/__properties__";
 
@@ -111,9 +106,8 @@ struct LocalPropertyTestState {
     if (!valid)
       return;
 
-    __system_property_area__ = old_pa;
-
     __system_property_set_filename(PROP_FILENAME);
+    __system_property_area_init();
     unlink(pa_filename.c_str());
     rmdir(pa_dirname.c_str());
 
@@ -138,7 +132,6 @@ struct LocalPropertyTestState {
  private:
   std::string pa_dirname;
   std::string pa_filename;
-  void* old_pa;
 };
 
 static void BM_property_get(benchmark::State& state) {
index ec1d18f..2bbf2d3 100644 (file)
@@ -209,7 +209,6 @@ struct find_nth_cookie {
 };
 
 // This is public because it was exposed in the NDK. As of 2017-01, ~60 apps reference this symbol.
-// It's also used in a libnativehelper test.
 prop_area* __system_property_area__ = nullptr;
 
 static char property_filename[PROP_FILENAME_MAX] = PROP_FILENAME;
index ff97549..23d0cad 100644 (file)
@@ -29,8 +29,6 @@
 #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
 #include <sys/_system_properties.h>
 
-extern void *__system_property_area__;
-
 struct LocalPropertyTestState {
     LocalPropertyTestState() : valid(false) {
         const char* ANDROID_DATA = getenv("ANDROID_DATA");