|
|
DescriptionSupport weak WebPrivatePtr<>s.
Parameterize WebPrivatePtr<> over the strength of the reference it maintains:
WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak>
where
crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread}
strongOrWeak = WebPrivatePtrStrength::{Normal, Weak}
If Normal, the reference is the normal strong kind, which means either
a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference.
If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning
that the WebPrivatePtr<> will not keep the object alive on its own. Any
dereference of the WebPrivatePtr<> will consequently have to check if the
reference has been cleared before using.
The abstraction doesn't currently support weak non-Oilpan references.
R=
BUG=
Committed: https://crrev.com/07dc1d007fb0b42ed034e5731377f9e659a26ce5
Cr-Commit-Position: refs/heads/master@{#372324}
Patch Set 1 #Patch Set 2 : Strong -> Normal #
Total comments: 2
Patch Set 3 : fix indentation + rebase #Messages
Total messages: 25 (14 generated)
Description was changed from ========== Support weak WebPrivatePtr<>s. R= BUG= ========== to ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = {SameThread, CrossThread} strongOrWeak = { Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ==========
The CQ bit was checked by sigbjornf@opera.com to run a CQ dry run
sigbjornf@opera.com changed reviewers: + oilpan-reviews@chromium.org
please take a look..when there is a use for this. Should it turn out useful to support weakness over WebPrivatePtr<>, this is one way to do it. No need to get it ready before that time.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1618043003/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1618043003/20001
Description was changed from ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = {SameThread, CrossThread} strongOrWeak = { Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ========== to ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = {SameThread, CrossThread} strongOrWeak = {Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
haraken@chromium.org changed reviewers: + haraken@chromium.org, hiroshige@chromium.org, yhirano@chromium.org
LGTM I remember yhirano@ and hiroshige@ wanted this a while ago.
Great, lgtm! https://codereview.chromium.org/1618043003/diff/20001/third_party/WebKit/publ... File third_party/WebKit/public/platform/WebPrivatePtr.h (right): https://codereview.chromium.org/1618043003/diff/20001/third_party/WebKit/publ... third_party/WebKit/public/platform/WebPrivatePtr.h:149: class PtrStorageImpl<T, crossThreadDestruction, strongOrWeak, GarbageCollectedLifetime> { nit: no indent needed here.
lgtm. Thanks!
sigbjornf@opera.com changed reviewers: + tkent@chromium.org
adding tkent@ for public/platform owner review, ptal (no rush.) https://codereview.chromium.org/1618043003/diff/20001/third_party/WebKit/publ... File third_party/WebKit/public/platform/WebPrivatePtr.h (right): https://codereview.chromium.org/1618043003/diff/20001/third_party/WebKit/publ... third_party/WebKit/public/platform/WebPrivatePtr.h:149: class PtrStorageImpl<T, crossThreadDestruction, strongOrWeak, GarbageCollectedLifetime> { On 2016/01/27 03:55:01, hiroshige wrote: > nit: no indent needed here. oops, thanks for catching that.
lgtm
Description was changed from ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = {SameThread, CrossThread} strongOrWeak = {Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ========== to ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = {Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ==========
Description was changed from ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = {Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ========== to ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = WebPrivatePtrStrength::{Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ==========
Description was changed from ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = WebPrivatePtrStrength::{Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ========== to ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = WebPrivatePtrStrength::{Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ==========
The CQ bit was checked by sigbjornf@opera.com
The patchset sent to the CQ was uploaded after l-g-t-m from hiroshige@chromium.org, haraken@chromium.org, yhirano@chromium.org Link to the patchset: https://codereview.chromium.org/1618043003/#ps40001 (title: "fix indentation + rebase")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1618043003/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1618043003/40001
Message was sent while issue was closed.
Description was changed from ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = WebPrivatePtrStrength::{Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ========== to ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = WebPrivatePtrStrength::{Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ==========
Message was sent while issue was closed.
Committed patchset #3 (id:40001)
Message was sent while issue was closed.
Description was changed from ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = WebPrivatePtrStrength::{Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= ========== to ========== Support weak WebPrivatePtr<>s. Parameterize WebPrivatePtr<> over the strength of the reference it maintains: WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak> where crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread} strongOrWeak = WebPrivatePtrStrength::{Normal, Weak} If Normal, the reference is the normal strong kind, which means either a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference. If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning that the WebPrivatePtr<> will not keep the object alive on its own. Any dereference of the WebPrivatePtr<> will consequently have to check if the reference has been cleared before using. The abstraction doesn't currently support weak non-Oilpan references. R= BUG= Committed: https://crrev.com/07dc1d007fb0b42ed034e5731377f9e659a26ce5 Cr-Commit-Position: refs/heads/master@{#372324} ==========
Message was sent while issue was closed.
Patchset 3 (id:??) landed as https://crrev.com/07dc1d007fb0b42ed034e5731377f9e659a26ce5 Cr-Commit-Position: refs/heads/master@{#372324} |