History log of /art/runtime/obj_ptr.h
Revision Date Author Comments
797ffe58b2797b2ed9e314b56838aee4f1308c8c 10-Jan-2018 Evgenii Stepanov <eugenis@google.com> Remove extra sizeof().

Improves code readability.

Test: device boots
Change-Id: Ia1e834b57e42343dcc5e8005a1c5b03196db50c0
5573c37e795668eca81a8488078f798d977685c3 16-Nov-2017 Igor Murashkin <iam@google.com> cpplint: Remove many unnecessary NOLINT

Now that we updated to upstream cpplint, a lot of these NOLINTs are no
longer necessary.

Bug: 68951293
Change-Id: If8ed5ffe89727f313f907a214b6d8fd2a2eddbad
81e893809d51c3d784d295604c2963997235f2ed 12-Oct-2017 Andreas Gampe <agampe@google.com> ART: Change ObjPtr validation

Do not validate for copy constructor and assignment. This is the
majority of overhead in practice. Invalid ObjPtrs will still be
detected when they are used.

Bug: 35644369
Test: m test-art-host
Change-Id: I74378afdf69164046d854a0804465b83592f0873
0cd67eb174d6abec8e3100ec0883f7ae483802d5 22-Aug-2017 Roland Levillain <rpl@google.com> Remove bits about kPoison in ObjPtr's documentation.

Follow-up CL to https://android-review.googlesource.com/342532.

Test: mmma art
Bug: 35644797
Change-Id: I86c2b74bd25e7d38a684bcb527300fb7e6e5ab29
c73cb64585f301c8bb3b03a0684f6baead99b7ac 22-Feb-2017 Andreas Gampe <agampe@google.com> ART: Remove ObjPtr kPoison template parameter

Move to a global constexpr, so that object pointer poisoning can
be explicitly turned off for lower debug build overhead.

Bug: 35644797
Test: m
Test: m test-art-host
Change-Id: I2412b67cbec144f2aee206fb48591abe581fd00a
19a4d374738da4dc668a078f92dbe887ff9f00d9 08-Dec-2016 Vladimir Marko <vmarko@google.com> Clean up Class::GetDirectInterface().

Once the `klass` has been resolved, this function should not
need to resolve interface types anymore. Drop the type
resolution from this function and pass the Class as ObjPtr<>
instead of Handle<>. Make callers that expect non-null
result DCHECK() that assumption. For the callers that may
actually need to resolve these interface classes, introduce
a new function ResolveDirectInterface().

Also improve ObjPtr<> constructors and assignment operator
to improve overload resolution. For example, if we have
foo(ObjPtr<T1>) and foo(ObjPtr<T2>), calling foo(.) with
a T1* would have previously been ambiguous even if T1 is
not a base of T2.

Test: m test-art-host
Change-Id: Iff44a7285f68f0af4507fc9ba37343865422fe84
52edc855b2b7ccb0816e7a08006dd7bf9891838c 03-Nov-2016 Andreas Gampe <agampe@google.com> ART: Add NOLINT to ObjPtr

The ObjPtr constructors are constructed to allow implicit conversion.

Also ensure that ObjPtr is trivially copyable.

Bug: 32619234
Test: m
Change-Id: I022e8d7d5a54c0057e9007bb7c13312b343c23b6
28357fab628bd9b91749988b554977398caf9963 19-Oct-2016 Mathieu Chartier <mathieuc@google.com> Move most of class linker to ObjPtr

Return values are still mirror pointer. Fix some failing asserts in
compiler driver and tests.

Bug: 31113334

Test: test-art-host

Change-Id: I4450bf9dfb2541749496b8388616e8aae8488919
a058fdf0cf7435a13a6e8cae5e3a9bfa1513828d 07-Oct-2016 Mathieu Chartier <mathieuc@google.com> Move mirror::Object setters to ObjPtr

Bug: 31113334

Test: test-art-host

Change-Id: I2c4c84645e194c3c435a4a6fd670176b0e98671f
c4f3925490a73da8dc74884a1deb965d4ecaf14e 06-Oct-2016 Mathieu Chartier <mathieuc@google.com> Move remaining jobject related functions to use ObjPtr

Also added ObjPtr::DownCast.

Bug: 31113334

Test: test-art-host

Change-Id: I59c253211dc435579ffdfd49f856861ab13d262c
f8ac97f94aad9ce2d324c2c7c21dde3abf13315b 06-Oct-2016 Mathieu Chartier <mathieuc@google.com> ObjPtr misc cleanup

Check for subtypes in constructor.

Remove various calls to MakeObjPtr and ObjPtr::Ptr.

Bug: 31113334

Test: test-art-host
Change-Id: I8d680d514ea52cd64fc4f7c2e988926bc726174e
1cc62e4ea24828fdb3f3da0b8603f0b107d09a04 04-Oct-2016 Mathieu Chartier <mathieuc@google.com> Rename ObjPtr::Decode to ObjPtr::Ptr

Done to prevent ambiguity with ScopedObjectAccess::Decode.

Bug: 31113334

Test: test-art-host
Change-Id: I07a2497cc9cf66386311798933547471987fc316
3398c7874e002beaa6c2b2fadf183e7d1ddad23a 30-Sep-2016 Mathieu Chartier <mathieuc@google.com> Move ArtField to ObjPtr

Added EXPECT_OBJ_PTR_EQ and variants to gtests.

Fixed moving GC bugs in:
ClassLinker::CreatePathClassLoader
ClassLinkerTest: StaticFields

ObjPtr Decode call sites: 186 -> 181.

Some tests fail due to ResolvedFieldAccessTest, will fix in follow
up CL.

Bug: 31113334

Test: test-art-host CC baker

Change-Id: I8b266ad00f3c20c8cbe7cfdf280d175083df0b88
0795f23920ee9aabf28e45c63cd592dcccf00216 28-Sep-2016 Mathieu Chartier <mathieuc@google.com> Clean up ScopedThreadStateChange to use ObjPtr

Also fixed inclusion of -inl.h files in .h files by adding
scoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h

Changed AddLocalReference / Decode to use ObjPtr.

Changed libartbenchmark to be debug to avoid linkage errors.

Bug: 31113334

Test: test-art-host

Change-Id: I4d2e160483a29d21e1e0e440585ed328b9811483
a59d9b228b1eda3bf71a81b6201ec64e26086c23 27-Sep-2016 Mathieu Chartier <mathieuc@google.com> Use ObjPtr for reflection.cc/h/inl

Changed Pretty helpers to use this to reduce usage of Decode. The
eventual goal is not have almost any calls to ObjPtr::Decode.

Moved ObjPtr out of mirror namespace for convenience. Added more
PoisonObjectPointers calls in class linker, thread suspension.

Bug: 31113334

Test: test-art-host

Change-Id: I44d08db5143d95ed1b65e2f00f9749ef5cf379f7