summaryrefslogtreecommitdiff
path: root/libdexfile/external/include/art_api
AgeCommit message (Collapse)Author
2023-05-23Clean up libbase(_header) dependencies in libdexfile_support. Martin Stjernholm
We must not depend dynamically on non-NDK libraries in libdexfile_support, because it becomes a prebuilt that has to work on older platforms. (Removing the libbase dependency is a NOP change since no symbols from it are used now.) We also must not re-export any platform header files, because they'll then get added to the include path for the caller and may hide the headers they should be using. Plenty of platform and external headers are still exported by the libdexfile and libdexfile_static prebuilts, but the former isn't a real problem and the latter is an already known problem. Add some comments to discuss both. Test: Build prebuilts on internal git_master-art and use the S prebuilts in a SCv2 tree with ag/19239336 and https://r.android.com/2267725 Bug: 282171830 Bug: 169885605 Ignore-AOSP-First: Will cherry pick to AOSP later Change-Id: Ibff288cd14400015456b04b805efbfd6d76a89a3
2022-06-20Fix modernize-use-using clang-tidy issues Stefano Cianciulli
All the // NOLINT comments introduced in this CL were meant to disable only the modernize-use-using checks, but changing the comment to be // NOLINT(modernize-use-using) as explained in https://clang.llvm.org/extra/clang-tidy/#suppressing-undesired-diagnostics will make cpplint throw an error, as also cpplint uses the // NOLINT(...) notation to suppress unwanted warnings. Test: m tidy-art Test: art/libnativebridge/tests/runtests.sh Bug: 213953102 Change-Id: I9a992e0f0ecd06f7e64fd0bbf473bec4582370f6
2021-04-21Rewrite libdexfile C API to follow NDK guidelines better. David Srbecky
Bug: 123517037 Bug: 145347927 Test: test-art-host-gtest-art_libdexfile_support_tests64 Test: test-art-host-gtest-art_libdexfile_external_tests64 Change-Id: I9673872585456937d2f54abb63e3dbd8aad4e9ad
2021-03-22Add dex lookup overloads which take C++ lambda callback. David Srbecky
Provide more direct access to the underlying C api. Bug: 123517037 Test: m test-art-host-gtest Change-Id: I364814e284e7569cf96eb7a7596a95bef38abbd7
2021-03-22Simplify libdexfile external api. David Srbecky
Bug: 123517037 Test: m test-art-host-gtest Test: libunwindstack_unit_test Test: simpleperf_unit_test --gtest_filter=*dex* Change-Id: I1bd9a6849ad79d9ddd0a0dfb93ea7c7d2311bf49
2020-03-23Add new dex file support constructor. Christopher Ferris
The requirement of an r-value for the DexFile constructor made it hard to use and required a bunch of std::move calls. Add a constructor that takes a unique_ptr instead. Bug: 151966190 Test: Build and run art_libdexfile_support_static_tests. Change-Id: Ie6711be8efce62f591814512f796605e20e1ac89
2019-10-09Add a function that fails softly if libdexfile(d)_external.so cannot be Martin Stjernholm
loaded. libunwindstack needs it since it is used in situations where we cannot guarantee that libdexfile_external.so is available, e.g. from libc_malloc_debug.so in the bootstrap Bionic. Test: m test-art-host-gtest-art_libdexfile_support_tests Test: m test-art-host-gtest-art_libdexfile_support_static_tests Bug: 139408016 Change-Id: I0c311222baaafbf5c3a0f7d3f9f2d83d4abbaf90
2019-02-13Open libdexfile_external on demand in libdexfile_support. Martin Stjernholm
This allows users to depend on libdexfile_support (typically via libbacktrace) also in binaries that don't run java code. The drawback is one extra address load in all calls. Also add support for a nonfunctional fake with recovery and vendor variants, so that clients don't need special cases to avoid the libdexfile dependency. Bug: 123403798 Bug: 123186083 Test: Flash and boot Test: atest -a libdexfile_support{,_static}_tests Test: mmma art/libdexfile/ Test: mmma system/core/{libunwindstack,libbacktrace}, run host gtests (cannot get atest to work) Change-Id: Ia99ad8039bb37fe25bf7009a85ae89c2aa660bd1
2019-01-11Fix memory leaks in DexString wrapper and in unit tests. Martin Stjernholm
This addresses the art-gtest-asan failure from http://r.android.com/867370: http://ab/5224785 Test: env SANITIZE_HOST=address m test-art-host-gtest-dex_file_supp_test Bug: 119632407 Change-Id: I84f761561223c7da56a335b6691189020027a4a0
2019-01-10Add unit tests for libdexfile external API. Martin Stjernholm
This prompted a fix to ExtDexFileMakeString in the C API to make it fully support strings with NUL chars. That's currently not expected to be required; it's for the sake of API completeness. Test: m test-art-{host,target}-gtest-dex_file_supp_test Test: art/test/testrunner/run_build_test_target.py -j80 art-test Bug: 119632407 Change-Id: Ibd3ef6e3ea7ae196f541e926a4a7665be1c91819
2019-01-10Separate libdexfile external C ABI from the C++ header file. Martin Stjernholm
Also add a test to compile it with C. Test: m Test: m test-art-{host,target}-gtest-dex_file_ext_c_test Test: art/test/testrunner/run_build_test_target.py -j80 art-test Bug: 120978655 Change-Id: I6e9944a2051bef9a2775bc2072df4e0ed81dc833
2019-01-09Rename libdexfile external API header. Martin Stjernholm
For consistency with the new header file added in http://r.android.com/867369. Test: m Bug: 120978655 Change-Id: I7f3d1575c253028289d57b1a972c1f0bbcc88c7a
2019-01-09Expose PrettyMethod's with_signature in GetMethodInfoForOffset. Martin Stjernholm
This isn't strictly necessary for the current use case in libunwindstack. The reason for it is symmetry with GetAllMethodInfos. Also drop the default for with_signature. This is an incompatible C++ API change, so let's do it now. Test: mmma art/ system/core/{libunwindstack,libbacktrace} system/extras/{simpleperf,perfprofd} Test: Run out/host/linux-x86/nativetest*/libunwindstack_test/* Test: mmma system/extras/simpleperf && adb root && adb shell rm -rf /data/test && adb push out/target/product/taimen/testcases/simpleperf_unit_test /data/test && adb shell /data/test/arm64/simpleperf_unit_test && adb shell /data/test/arm/simpleperf_unit_test Bug: 119632407 Change-Id: I01345bd1b07554f70976cb8536f1304a3a739bf9
2018-12-20Move constructors and operators should be noexcept. Martin Stjernholm
Bug: 121130430 Test: env WITH_TIDY=1 mmm art/libdexfile:libdexfile_support Change-Id: Id73ec33bdb7d8a334b015935a2c87a1d178ad385
2018-12-13Add minimal libdexfile API for external users. Martin Stjernholm
This defines a stable C ABI that is safe for external use in libdexfile_external. On top of it is a thin stable C++ API in libdexfile_support to be linked into clients. TBD: Unit tests, e.g. move the relevant tests from libunwindstack. Test: mmma art/ Test: gtests and runtests on target Test: atest system/core/libunwindstack (no new failures, 1 old one) Bug: 119632407 Change-Id: I64388337e6d31e4bf36ec435a78c4defc2e17aa2