History log of /external/skia/include/core/SkRefCnt.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
19d7bd65045e88724ad59a8d7066a9092754c7e4 19-Feb-2018 Mike Reed <reed@google.com> hide virtual and rename to onMakeComposed

Bug: skia:
Change-Id: Ic18ee2af3273f81ebec9c9031162e808186c0acd
Reviewed-on: https://skia-review.googlesource.com/108300
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
/external/skia/include/core/SkRefCnt.h
6613cc5186c200e053c5df9bd8f051ffba6e3564 19-Dec-2017 Mike Klein <mtklein@chromium.org> GOOGLE3 -> SK_BUILD_FOR_GOOGLE3

This is more consistent with our other SK_BUILD_FOR_... macros,
and less likely to collide with other preprocessor logic.

(Luckily, this was defined in public.bzl, so we can do this
all in one CL in the Skia repo.)

Change-Id: I5f232888288c9c53fad445545d983d0fb0b4add8
Reviewed-on: https://skia-review.googlesource.com/86940
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/include/core/SkRefCnt.h
3849b64cbbdb7db6d5d4af44479b2d7c5bf5e6c7 23-Mar-2017 Derek Sollenberger <djsollen@google.com> Only perform SkSafeRef race detection if on android framework

Change-Id: If524a02e916d711057d6f2102efb0404b1c0b988
Reviewed-on: https://skia-review.googlesource.com/10036
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/include/core/SkRefCnt.h
6dd88144d5ae947090499793d68322f661b6192a 22-Mar-2017 Derek Sollenberger <djsollen@google.com> Make reference counted assignment check for races.

If SkRefCnt_SafeAssign is erroneously invoked simultaneously by two
threads on the same destination, a likely outcome is that the
reference count of an object other than the replaced dst will
be decremented. This results in an extra reference count decrement,
which usually means that the final reference count decrement will
be applied to a random location in an object that has already been
reallocated. This is exceedingly hard to debug.

We add a hack to detect such data races with sufficiently high
probability, so that such a data race bug should sometimes actually
generate bug reports that lend themselves to diagnosis.

We detect changes within a relatively larger range that normally
includes several (typically slow) memory fences. Not all such changes
would provoke a crash. Even if we decrement the wrong reference count,
there's a chance we would decrement a dead location. Thus, to
avoid potentially adding instability, we currently only log.

This change tries to minimize additional runtime overhead.
The macro is only expanded a few dozen times, so we do not worry too
much about code size.

Bug: b/31227650
Change-Id: Ia40c9ed2c4d0fa578ea682fbec4b71a2ef22a5d1
Reviewed-on: https://skia-review.googlesource.com/9994
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/include/core/SkRefCnt.h
a69f4cf0a7093aa8474b8177627e3976d4f1d9de 20-Dec-2016 Brian Osman <brianosman@google.com> Remove sk_ref_sp's misleading preprocessor define and comment

This function will always be useful. Don't make it look/feel like a
temporary hack.

BUG=skia:

Change-Id: I6506d7d51dc3b25a7dbcea4ac273f51cf05f3a89
Reviewed-on: https://skia-review.googlesource.com/6330
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/include/core/SkRefCnt.h
9075634d60cc8ce979e3007d4ba1d0e57afc6644 08-Nov-2016 Hal Canary <halcanary@google.com> Remove SkAutoTUnref from public API

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4530

Change-Id: I1ba33edc5ca44332ff4f296e6b9997a133a08a87
Reviewed-on: https://skia-review.googlesource.com/4530
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Reed <reed@google.com>
/external/skia/include/core/SkRefCnt.h
68057332d03017de933d9784213d8ece4adfb679 03-Nov-2016 Ben Wagner <bungeman@google.com> Remove SkAutoUnref.

It is no longer used.

Change-Id: Ie2f9a39a4295005cb39bdf2f8fc15542ee75d207
Reviewed-on: https://skia-review.googlesource.com/4386
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/include/core/SkRefCnt.h
81f4b0d1e0f5d1244dc5018f59542070bd309b97 12-Oct-2016 Ben Wagner <bungeman@google.com> Remove hack allowing fRefCnt of 0.

In some legacy situations users of SkRefCnt subclasses were keeping
the objects alive with a reference count of 0. Now that these users are
cleaned up, remove the hack which allowed such code to keep functioning.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3264

Change-Id: I22f63d87b6d995cad6326998284930ad9eaa2983
Reviewed-on: https://skia-review.googlesource.com/3264
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
/external/skia/include/core/SkRefCnt.h
9c5052f16b249d2b7674ea86bd24ed0038ccc61f 06-Aug-2016 mtklein <mtklein@chromium.org> SkLite*

SkLiteRecorder, a new SkCanvas, fills out SkLiteDL, a new SkDrawable.

This SkDrawable is a display list similar to SkRecord and SkBigPicture / SkRecordedDrawable, but with a few new design points inspired by Android and slimming paint:

1) SkLiteDL is structured as one big contiguous array rather than the two layer structure of SkRecord. This trades away flexibility and large-op-count performance for better data locality for small to medium size pictures.

2) We keep a global freelist of SkLiteDLs, both reusing the SkLiteDL struct itself and its contiguous byte array. This keeps the expected number of mallocs per display list allocation <1 (really, ~0) for cyclical use cases.

These two together mean recording is faster. Measuring against the code we use at head, SkLiteRecorder trends about ~3x faster across various size pictures, matching speed at 0 draws and beating the special-case 1-draw pictures we have today. (I.e. we won't need those special case implementations anymore, because they're slower than this new generic code.) This new strategy records 10 drawRects() in about the same time the old strategy took for 2.

This strategy stays the winner until at least 500 drawRect()s on my laptop, where I stopped checking.

A simpler alternative to freelisting is also possible (but not implemented here), where we allow the client to manually reset() an SkLiteDL for reuse when its refcnt is 1. That's essentially what we're doing with the freelist, except tracking what's available for reuse globally instead of making the client do it.

This code is not fully capable yet, but most of the key design points are there. The internal structure of SkLiteDL is the area I expect to be most volatile (anything involving Op), but its interface and the whole of SkLiteRecorder ought to be just about done.

You can run nanobench --match picture_overhead as a demo. Everything it exercises is fully fleshed out, so what it tests is an apples-to-apples comparison as far as recording costs go. I have not yet compared playback performance.

It should be simple to wrap this into an SkPicture subclass if we want.

I won't start proposing we replace anything old with anything new quite yet until I have more ducks in a row, but this does look pretty promising (similar to the SkRecord over old SkPicture change a couple years ago) and I'd like to land, experiment, iterate, especially with an eye toward Android.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2213333002

Review-Url: https://codereview.chromium.org/2213333002
/external/skia/include/core/SkRefCnt.h
06ca8ec87cf6fab57cadd043a5ac18c4154a4129 09-Jun-2016 bungeman <bungeman@google.com> sk_sp for Ganesh.

Convert use of GrFragmentProcessor, GrGeometryProcessor, and
GrXPFactory to sk_sp. This clarifies ownership and should
reduce reference count churn by moving ownership.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2041113004

Review-Url: https://codereview.chromium.org/2041113004
/external/skia/include/core/SkRefCnt.h
801b44c45348144a483793e7b24f4d4092a4f74d 28-Apr-2016 bungeman <bungeman@google.com> Remove skstd::is_convertible.

We should now be able to use std::is_convertible.

TBR=reed@google.com
This doesn't change any API, just where we get a type trait from.

Review-Url: https://codereview.chromium.org/1931003002
/external/skia/include/core/SkRefCnt.h
f9634b95eccd58acf5b20d98c5d2ee5af353d3d2 14-Apr-2016 benjaminwagner <benjaminwagner@google.com> For GOOGLE3, add deref method to SkRefCnt.

This makes it easier to integrate with Blink code using RefPtr/PassRefPtr without pulling in Chrome's SkUserConfig.h.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1890573003

Review URL: https://codereview.chromium.org/1890573003
/external/skia/include/core/SkRefCnt.h
2c4bd0798e929acb9663668985eabe74d7378c46 08-Apr-2016 bungeman <bungeman@google.com> Convert SkRefCnt to std::atomic.

This enables removing the more complicated atomic shims from SkAtomics.h.

TBR=reed
This doesn't actually change any API.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-TSAN-Trybot,Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Release-TSAN-Trybot

Review URL: https://codereview.chromium.org/1867863002
/external/skia/include/core/SkRefCnt.h
04cdc4b61879849df63e883e68eecafe6510f423 21-Mar-2016 mtklein <mtklein@chromium.org> Remove transitional explicit operator bool.

These should no longer be necessary. Android's STL should now
be sane.

TBR=reed
This just removes code.

Review URL: https://codereview.chromium.org/1817153002
/external/skia/include/core/SkRefCnt.h
bbd60689bb080fd147565dbc171f19a6ef177997 17-Mar-2016 mtklein <mtklein@chromium.org> Add back SkAutoTUnref::detach() for Android temporarily.

TBR=reed@google.com

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1812843002

Review URL: https://codereview.chromium.org/1812843002
/external/skia/include/core/SkRefCnt.h
18300a3aa7cb6eb55d21bb0450dffa58b6fc062c 16-Mar-2016 mtklein <mtklein@chromium.org> detach -> release

The C++ standard library uses the name "release" for the operation we call "detach".

Rewriting each "detach(" to "release(" brings us a step closer to using standard library types directly (e.g. std::unique_ptr instead of SkAutoTDelete).

This was a fairly blind transformation. There may have been unintentional conversions in here, but it's probably for the best to have everything uniformly say "release".

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1809733002

Review URL: https://codereview.chromium.org/1809733002
/external/skia/include/core/SkRefCnt.h
5f939ab658a228dce34a3b14a545638407150b92 16-Mar-2016 mtklein <mtklein@chromium.org> Use std::unique_ptr.

TBR=reed@google.com

Committed: https://skia.googlesource.com/skia/+/20c1e3abfc681771f73eb19fde7284196e028940

Committed: https://skia.googlesource.com/skia/+/3dd9ed37c24611af86f0fe374bd3698b63f09450
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1780933003

Committed: https://skia.googlesource.com/skia/+/2691d76a06e1af6282f8b3a3140cc93361be10c4

Review URL: https://codereview.chromium.org/1780933003
/external/skia/include/core/SkRefCnt.h
e7ec417268d4be2d7921b23c131859b322badf78 16-Mar-2016 mtklein <mtklein@google.com> Revert of Use std::unique_ptr. (patchset #10 id:170001 of https://codereview.chromium.org/1780933003/ )

Reason for revert:
aww jeez, I dropped ps 8...

Original issue's description:
> Use std::unique_ptr.
>
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/20c1e3abfc681771f73eb19fde7284196e028940
>
> Committed: https://skia.googlesource.com/skia/+/3dd9ed37c24611af86f0fe374bd3698b63f09450
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1780933003
>
> Committed: https://skia.googlesource.com/skia/+/2691d76a06e1af6282f8b3a3140cc93361be10c4

TBR=bungeman@google.com,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1809693002
/external/skia/include/core/SkRefCnt.h
2691d76a06e1af6282f8b3a3140cc93361be10c4 16-Mar-2016 mtklein <mtklein@chromium.org> Use std::unique_ptr.

TBR=reed@google.com

Committed: https://skia.googlesource.com/skia/+/20c1e3abfc681771f73eb19fde7284196e028940

Committed: https://skia.googlesource.com/skia/+/3dd9ed37c24611af86f0fe374bd3698b63f09450
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1780933003

Review URL: https://codereview.chromium.org/1780933003
/external/skia/include/core/SkRefCnt.h
218c846ac0509f70d6da3eb3a439fa89b589f7b5 11-Mar-2016 mtklein <mtklein@google.com> Revert of Use std::unique_ptr. (patchset #8 id:130001 of https://codereview.chromium.org/1780933003/ )

Reason for revert:
Another Android ambiguity due to implicit bool...

frameworks/base/core/jni/android/graphics/Utils.cpp:110:35: error: call of overloaded 'SkMemoryStream(SkAutoTUnref<SkData>&)' is ambiguous
return new SkMemoryStream(data);

Original issue's description:
> Use std::unique_ptr.
>
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/20c1e3abfc681771f73eb19fde7284196e028940
>
> Committed: https://skia.googlesource.com/skia/+/3dd9ed37c24611af86f0fe374bd3698b63f09450

TBR=bungeman@google.com,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1785353002
/external/skia/include/core/SkRefCnt.h
3dd9ed37c24611af86f0fe374bd3698b63f09450 11-Mar-2016 mtklein <mtklein@chromium.org> Use std::unique_ptr.

TBR=reed@google.com

Committed: https://skia.googlesource.com/skia/+/20c1e3abfc681771f73eb19fde7284196e028940

Review URL: https://codereview.chromium.org/1780933003
/external/skia/include/core/SkRefCnt.h
977c07dad26fbb56f6d4b5fc1ac1a324d28bd693 10-Mar-2016 mtklein <mtklein@google.com> Revert of Use std::unique_ptr. (patchset #7 id:120001 of https://codereview.chromium.org/1780933003/ )

Reason for revert:
Now we remember! The problem was Clank:

https://build.chromium.org/p/tryserver.chromium.android/builders/android_clang_dbg_recipe/builds/34329

Original issue's description:
> Use std::unique_ptr.
>
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/20c1e3abfc681771f73eb19fde7284196e028940

TBR=bungeman@google.com,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1782973002
/external/skia/include/core/SkRefCnt.h
20c1e3abfc681771f73eb19fde7284196e028940 10-Mar-2016 mtklein <mtklein@chromium.org> Use std::unique_ptr.

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1780933003
/external/skia/include/core/SkRefCnt.h
647cc8474828202c98d540f799742e3074a2aace 08-Mar-2016 reed <reed@google.com> Add sk_ref_sp helper function.

Review URL: https://codereview.chromium.org/1773943004
/external/skia/include/core/SkRefCnt.h
c901c11549acd19e7fc225276f78374ac1600496 08-Mar-2016 bungeman <bungeman@google.com> Add element_type, swap, operators, fix reset on sk_sp.

The 'element_type' typedef is to play nice with std::pointer_traits.

The full complement of operators and swap to match unique_ptr so that
sk_sp can be properly compared to nullptr and used with standard
containers.

Update to 'reset' so that calling 'unref' is the last operation.

This also adds tests for these changes, and sets the fPtr to nullptr
in debug for easier bug finding.

Review URL: https://codereview.chromium.org/1773453002
/external/skia/include/core/SkRefCnt.h
941da9d66171bd8efd2f6c5e25ff90c8c69885c1 06-Mar-2016 reed <reed@google.com> Fix behavior of sk_sp::reset(T*) and add unittest.

Previously, sk_sp::reset(T* t) did not release its own reference
if its internal pointer was the same as 't'. This leaks a reference.
Now always release the current reference when non-nullptr.

Review URL: https://codereview.chromium.org/1767983002
/external/skia/include/core/SkRefCnt.h
ffa39e02bc34a33c23fcccd61b781b5d05a980d3 05-Mar-2016 halcanary <halcanary@google.com> sk_sp: fix contravariant constructors

TBR=reed
This is obviously correct and needs to be fixed.

Review URL: https://codereview.chromium.org/1771583002
/external/skia/include/core/SkRefCnt.h
beab9e7ba06ea8bd01fcbfd44f2ca2ed69c8a1d9 03-Mar-2016 bungeman <bungeman@google.com> Add operator* and operator safe-bool to sk_sp.

This greatly reduces the need to use '.get()' in conditionals.

Review URL: https://codereview.chromium.org/1760453004
/external/skia/include/core/SkRefCnt.h
89bd99bed85083c736390f3e340fd30be350d461 02-Mar-2016 halcanary <halcanary@google.com> sk_sp: remove explicit operator bool()

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1757593005

Review URL: https://codereview.chromium.org/1757593005
/external/skia/include/core/SkRefCnt.h
cb6cb3841adec77d178c6d6ed006102077fd3c48 02-Mar-2016 halcanary <halcanary@google.com> sk_sp: Covariant Move Constructor and Move Assignment

Also Covariant Copy Constructor, Copy Assignment,
and comparison operators.

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1752093002

Review URL: https://codereview.chromium.org/1752093002
/external/skia/include/core/SkRefCnt.h
217c0b3f137d824413e806759bc25378abbe8c18 02-Mar-2016 halcanary <halcanary@google.com> sk_make_sp<T>()

because
auto atm = sk_make_sp<SkAdvancedTypefaceMetrics>();
is better than
sk_sp<SkAdvancedTypefaceMetrics> atm(new SkAdvancedTypefaceMetrics);

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1753973002

Review URL: https://codereview.chromium.org/1753973002
/external/skia/include/core/SkRefCnt.h
bb7b043b2db64197d2f6a1edaf3562a50c77afb1 01-Mar-2016 reed <reed@google.com> isolate sk_sp from larger cl

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1752683002

Review URL: https://codereview.chromium.org/1752683002
/external/skia/include/core/SkRefCnt.h
1138be45eac9dd21b094c9774a6f9c612f9f8fa8 25-Jan-2016 mtklein <mtklein@google.com> Revert of skstd -> std for unique_ptr (patchset #24 id:460001 of https://codereview.chromium.org/1436033003/ )

Reason for revert:
Still need an answer for SkAdvancedTypefaceMetrics (at least for Google3 iOS build).

Original issue's description:
> skstd -> std for unique_ptr
>
> TBR=reed@google.com
> No public API changes.
>
> BUG=skia:4564
>
> Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50
>
> CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot,Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065
>
> Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c
>
> Committed: https://skia.googlesource.com/skia/+/dadfc245cc9a0279ff7b73da3344f2ca5d139907
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1436033003
>
> Committed: https://skia.googlesource.com/skia/+/ccf1de0d9aa75f29829f1c4c462214b991fd8c9e

TBR=bungeman@google.com,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4564

Review URL: https://codereview.chromium.org/1626873004
/external/skia/include/core/SkRefCnt.h
ccf1de0d9aa75f29829f1c4c462214b991fd8c9e 25-Jan-2016 mtklein <mtklein@chromium.org> skstd -> std for unique_ptr

TBR=reed@google.com
No public API changes.

BUG=skia:4564

Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot,Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release-Trybot

Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065

Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c

Committed: https://skia.googlesource.com/skia/+/dadfc245cc9a0279ff7b73da3344f2ca5d139907
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1436033003

Review URL: https://codereview.chromium.org/1436033003
/external/skia/include/core/SkRefCnt.h
97466ab03e025b6edd94c4f0f369cd0b0d8c3319 07-Dec-2015 mtklein <mtklein@chromium.org> fix funky formatting in SkNVRefCnt

BUG=skia:
TBR=reed@google.com
No API change.

Review URL: https://codereview.chromium.org/1505023002
/external/skia/include/core/SkRefCnt.h
5c05d10511610c35f7912d48ede509c7e32e0a3c 02-Dec-2015 mtklein <mtklein@google.com> Revert of skstd -> std for unique_ptr (patchset #17 id:320001 of https://codereview.chromium.org/1436033003/ )

Reason for revert:
Chromium bots can't handle forward declared types, e.g.

struct Foo {
int x,y;
std::unique_ptr<Foo> next;
};

https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/86497

Original issue's description:
> skstd -> std for unique_ptr
>
> TBR=reed@google.com
> No public API changes.
>
> BUG=skia:4564
>
> Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50
>
> CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot,Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065
>
> Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c
>
> Committed: https://skia.googlesource.com/skia/+/dadfc245cc9a0279ff7b73da3344f2ca5d139907

TBR=bungeman@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4564

Review URL: https://codereview.chromium.org/1498583002
/external/skia/include/core/SkRefCnt.h
dadfc245cc9a0279ff7b73da3344f2ca5d139907 02-Dec-2015 mtklein <mtklein@chromium.org> skstd -> std for unique_ptr

TBR=reed@google.com
No public API changes.

BUG=skia:4564

Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot,Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release-Trybot

Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065

Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c

Review URL: https://codereview.chromium.org/1436033003
/external/skia/include/core/SkRefCnt.h
e066df9673063871c478f84dd26bc3d7352819d9 30-Nov-2015 mtklein <mtklein@google.com> Revert of skstd -> std for unique_ptr (patchset #16 id:300001 of https://codereview.chromium.org/1436033003/ )

Reason for revert:
Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release

Original issue's description:
> skstd -> std for unique_ptr
>
> TBR=reed@google.com
> No public API changes.
>
> BUG=skia:4564
>
> Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50
>
> CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065
>
> Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c

TBR=bungeman@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4564

Review URL: https://codereview.chromium.org/1482343002
/external/skia/include/core/SkRefCnt.h
70e8dfca4a7f5bce97b8021a6e378c4828b09c8c 30-Nov-2015 mtklein <mtklein@chromium.org> skstd -> std for unique_ptr

TBR=reed@google.com
No public API changes.

BUG=skia:4564

Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot

Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065

Review URL: https://codereview.chromium.org/1436033003
/external/skia/include/core/SkRefCnt.h
dfd7d48ced44026aafca71ecb5f0138af8125b94 23-Nov-2015 mtklein <mtklein@google.com> Revert of skstd -> std for unique_ptr (patchset #16 id:300001 of https://codereview.chromium.org/1436033003/ )

Reason for revert:
Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release has not updated yet.

Original issue's description:
> skstd -> std for unique_ptr
>
> TBR=reed@google.com
> No public API changes.
>
> BUG=skia:4564
>
> Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50
>
> CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065

TBR=bungeman@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4564

Review URL: https://codereview.chromium.org/1467333002
/external/skia/include/core/SkRefCnt.h
06189155d987db5c7e69015f6ea87c2168d6a065 23-Nov-2015 mtklein <mtklein@chromium.org> skstd -> std for unique_ptr

TBR=reed@google.com
No public API changes.

BUG=skia:4564

Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot

Review URL: https://codereview.chromium.org/1436033003
/external/skia/include/core/SkRefCnt.h
566b23c571dbec97925ad0c44e744126a62e5a1e 16-Nov-2015 mtklein <mtklein@google.com> Revert of skstd -> std for unique_ptr (patchset #9 id:160001 of https://codereview.chromium.org/1436033003/ )

Reason for revert:
10.9 bots are too old too.

Original issue's description:
> skstd -> std for unique_ptr
>
> TBR=reed@google.com
> No public API changes.
>
> BUG=skia:4564
>
> Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50

TBR=bungeman@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4564

Review URL: https://codereview.chromium.org/1446413002
/external/skia/include/core/SkRefCnt.h
755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50 16-Nov-2015 mtklein <mtklein@chromium.org> skstd -> std for unique_ptr

TBR=reed@google.com
No public API changes.

BUG=skia:4564

Review URL: https://codereview.chromium.org/1436033003
/external/skia/include/core/SkRefCnt.h
77a53de20d723ca21cc824fd97e68aaa60e022ea 01-Oct-2015 bungeman <bungeman@google.com> Base SkAutoTUnref on skstd::unique_ptr.

To further consolidate the various unique owning classes, this bases
SkAutoTUnref on skstd::unique_ptr. Users are updated because of two
breaking changes, swap now takes a reference and reset no longer
returns its argument.

Review URL: https://codereview.chromium.org/1370803002
/external/skia/include/core/SkRefCnt.h
e6e41a8a19976a822de36379db23184ff2f28601 28-Sep-2015 herb <herb@google.com> Move SkAtomics.h to private.

There are no API changes.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1369333004
/external/skia/include/core/SkRefCnt.h
385fe4d4b62d7d1dd76116dd570df3290a2f487b 26-Aug-2015 halcanary <halcanary@google.com> Style Change: SkNEW->new; SkDELETE->delete
DOCS_PREVIEW= https://skia.org/?cl=1316123003

Review URL: https://codereview.chromium.org/1316123003
/external/skia/include/core/SkRefCnt.h
ab5d5de420503018b385b73e91b24812916c2080 24-Aug-2015 djsollen <djsollen@google.com> Enable debug builds in the Android framework

Review URL: https://codereview.chromium.org/1297093004
/external/skia/include/core/SkRefCnt.h
f3c15b7cfc4eed2528f7db87ea6c1444b55ee856 19-Aug-2015 bungeman <bungeman@google.com> Move SkTemplates.h to private.

SkTemplates.h contains a number of Skia specific utilities which are
not designed for external use. In addition to reducing the external
support burden, this will allow Skia to freely refactor this file.

Review URL: https://codereview.chromium.org/1272293004
/external/skia/include/core/SkRefCnt.h
2766c00fc0b6a07d46e5f74cdad45da2ef625237 26-Jun-2015 mtklein <mtklein@chromium.org> remove SkInstCnt

It's been outclassed by Valgrind and leak sanitizer,
and it seems to be causing problems for external folks building Skia.

I'm not sure why our own builds seem unaffected.

Latest thread:
https://groups.google.com/forum/#!topic/skia-discuss/oj9FsQwwSF0

BUG=skia:

Review URL: https://codereview.chromium.org/1217573002
/external/skia/include/core/SkRefCnt.h
76f5cc6e9e87ff247c3ef1f4b3fb03668db06e2e 06-Apr-2015 mtklein <mtklein@chromium.org> Clean up BlockRef

- It's no longer needed to help the (2011?) transition to SkAutoTUnref.
- It prevents us from making classes that go in SkAutoTUnrefs final,
i.e. all ref-counted classes.

This had better not have been public API...
TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1068443002
/external/skia/include/core/SkRefCnt.h
7b274c78fbeefa3818af68099545f2839c854847 03-Feb-2015 mtklein <mtklein@chromium.org> Port SkRefCnt.h to new SkAtomics.h

This adds sk_memory_barrier(), implemented using sk_atomic_fetch_add() on an uninitialized variable. If that becomes a problem we can drop this to the porting layer, using std::atomic_thread_fence() / __atomic_thread_fence() / __sync_synchronize().

The big win is that ref() doesn't generate a memory barrier any more on ARM.
This is an instance of SkSafeRef() in SkPaint(const SkPaint&) after this CL:
4d0: 684a ldr r2, [r1, #4]
4d2: 6018 str r0, [r3, #0]
4d4: b13a cbz r2, 4e6 <_ZN7SkPaintC1ERKS_+0x2e>
4d6: 1d10 adds r0, r2, #4
4d8: e850 4f00 ldrex r4, [r0]
4dc: 3401 adds r4, #1
4de: e840 4500 strex r5, r4, [r0]
4e2: 2d00 cmp r5, #0
4e4: d1f8 bne.n 4d8 <_ZN7SkPaintC1ERKS_+0x20>

Here's the before, pretty much the same with two memory barriers surrounding the ref():
4d8: 684a ldr r2, [r1, #4]
4da: 6018 str r0, [r3, #0]
4dc: b15a cbz r2, 4f6 <_ZN7SkPaintC1ERKS_+0x3e>
4de: 1d10 adds r0, r2, #4
4e0: f3bf 8f5f dmb sy
4e4: e850 4f00 ldrex r4, [r0]
4e8: 3401 adds r4, #1
4ea: e840 4500 strex r5, r4, [r0]
4ee: 2d00 cmp r5, #0
4f0: d1f8 bne.n 4e4 <_ZN7SkPaintC1ERKS_+0x2c>
4f2: f3bf 8f5f dmb sy

The miscellaneous files in here are just fixups to explicitly include SkMutex.h,
instead of leeching it off SkRefCnt.h.

No public API changes.
TBR=reed@google.com

Build trybots seem hosed.
NOTRY=true

BUG=skia:

Review URL: https://codereview.chromium.org/896803002
/external/skia/include/core/SkRefCnt.h
6f07665768dc84453316e7b2bbd6049576764cb1 13-Jan-2015 mtklein <mtklein@chromium.org> Simplify SkInstCnt

This code requires fewer macros to use it (just one), has less code in macro
definitions, and has simpler synchronization code (just atomic ints, no SkOnce,
no SkMutex, etc.)

A minor downside, we lose indentation and reverse-ordering in the final report:
Leaked SkRefCntBase: 7
Leaked SkFontMgr: 1
Leaked SkWeakRefCnt: 1
Leaked SkTypeface: 1
Leaked SkFlattenable: 3
Leaked SkXfermode: 3
Leaked SkPathRef: 1
Leaked SkPixelRef: 1
Leaked SkMallocPixelRef: 1
becomes
Leaked SkXfermode: 3
Leaked SkMallocPixelRef: 1
Leaked SkPixelRef: 1
Leaked SkPathRef: 1
Leaked SkFlattenable: 3
Leaked SkTypeface: 1
Leaked SkWeakRefCnt: 1
Leaked SkFontMgr: 1
Leaked SkRefCntBase: 7

This is motivated by wanting to land https://codereview.chromium.org/806473006/,
which makes sure all static use of SkOnce are in global scope. The current
implementation of SkInstCnt uses them in function scope, which isn't safe.
BUG=skia:

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/841263004
/external/skia/include/core/SkRefCnt.h
21180e26519a23cc69f4673f0b518395fddac57b 25-Nov-2014 mtklein <mtklein@google.com> Revert of Blink hasn't rolled yet, better. (patchset #1 id:1 of https://codereview.chromium.org/758693002/)

Reason for revert:
Try again, for real.

Original issue's description:
> Blink hasn't rolled yet, better.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/89ff0846fd9dacf5f081373746624d450a5f8c26

TBR=mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/754303004
/external/skia/include/core/SkRefCnt.h
89ff0846fd9dacf5f081373746624d450a5f8c26 24-Nov-2014 Mike Klein <mtklein@google.com> Blink hasn't rolled yet, better.

BUG=skia:

Review URL: https://codereview.chromium.org/758693002
/external/skia/include/core/SkRefCnt.h
a2a5cd440515c485ee5939640be9fc2fba403766 24-Nov-2014 mtklein <mtklein@google.com> Revert of Blink hasn't rolled yet. (patchset #1 id:1 of https://codereview.chromium.org/754133002/)

Reason for revert:
Not thorough enough.

Original issue's description:
> Blink hasn't rolled yet.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/fa14113d0563686af9f7e2d8e041dd7bf538cfa2

TBR=mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/752303002
/external/skia/include/core/SkRefCnt.h
3c850c561fcad1ac35bff4ec2875a40ef2309148 24-Nov-2014 reed <reed@google.com> restore old convention of asserting refcnt==1 in destructor

BUG=skia:

Review URL: https://codereview.chromium.org/757563003
/external/skia/include/core/SkRefCnt.h
fa14113d0563686af9f7e2d8e041dd7bf538cfa2 24-Nov-2014 Mike Klein <mtklein@google.com> Blink hasn't rolled yet.

BUG=skia:

Review URL: https://codereview.chromium.org/754133002
/external/skia/include/core/SkRefCnt.h
bbb61d7268b26d240afde2c924cb7d1370aa4071 24-Nov-2014 mtklein <mtklein@chromium.org> make SkRefCnt::getRefCnt() debug-only, remove it from SkNVRefCnt.

Only (unused) API removed.
TBR=reed@google.com

BUG=skia:3160

Review URL: https://codereview.chromium.org/752263002
/external/skia/include/core/SkRefCnt.h
90d0ff013bbd8e5295d1517d41cb408e9d9f4d93 24-Nov-2014 reed <reed@google.com> add some debugging to SkNVRefCnt

BUG=skia:

Review URL: https://codereview.chromium.org/745383003
/external/skia/include/core/SkRefCnt.h
844aa334a43a95cd83a27d565db1d3370d8dc10c 20-Nov-2014 Florin Malita <fmalita@google.com> Add SkNVRefCnt::getRefCnt()

Used in Blink unit tests.

TBR=mtklein@google.com,humper@google.com

Review URL: https://codereview.chromium.org/746693002
/external/skia/include/core/SkRefCnt.h
d6ab2a8e45f6c473c076a828aa401919d7519d05 20-Nov-2014 mtklein <mtklein@chromium.org> Add SkNVRefCnt::deref().

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/744853002
/external/skia/include/core/SkRefCnt.h
08d1fccf6eeec0a9fd5421e59e4d05daccf6e339 20-Nov-2014 mtklein <mtklein@chromium.org> Add SkNVRefCnt, prune down SkPicture's size

SkNVRefCnt is a variant of SkRefCnt that's Not Virtual, so weighs 4 bytes
instead of 8 or 16. There's only benefit to doing this if the deriving class
does not otherwise need a vtable, e.g. SkPicture.

I've stripped out some cruft from SkPicture, rearranged fields to pack tightly,
and added compile asserts for the sizes of SkPicture, SkRecord, and
SkVarAlloc.

BUG=skia:3144

Review URL: https://codereview.chromium.org/741793002
/external/skia/include/core/SkRefCnt.h
a5cf665997d73169e2f5260eaf9643af1f309762 29-Oct-2014 bungeman <bungeman@google.com> Issue acquire barrier in SkRefCnt::unique().

When unique() returns true, it must also issue an acquire barrier.
Note that this change may adversly impact SkPath performance,
but editing SkPaths is already a performance issue.

BUG=chromium:258499

No API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/687293002
/external/skia/include/core/SkRefCnt.h
d71b75757335393d9643a5b7a0f2769b6ba52fb6 18-Sep-2014 bungeman <bungeman@google.com> Serialize the font index.

BUG=skia:1186
R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/567013002
/external/skia/include/core/SkRefCnt.h
49f085dddff10473b6ebf832a974288300224e60 05-Sep-2014 bsalomon <bsalomon@google.com> "NULL !=" = NULL

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/544233002
/external/skia/include/core/SkRefCnt.h
dcabb05113a732636691abc16d643a091336aea5 21-Jul-2014 bsalomon <bsalomon@google.com> Make GrCacheable implement its own ref counting.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/392333008
/external/skia/include/core/SkRefCnt.h
733418f91e4d90f4ec250d9a97120618a5a89b49 17-Jul-2014 bungeman <bungeman@google.com> Remove SkRefPtr.

R=mtklein@google.com, reed@google.com, bsalomon@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/393913002
/external/skia/include/core/SkRefCnt.h
a179a1ede9e8ff17e23a61a55d822e862d09b8e8 15-Jul-2014 mtklein <mtklein@chromium.org> SkAutoRef seems lonely. Might as well delete it.

(On the other hand, SkAutoUnref is well-used.)

NOTREECHECKS=true

BUG=skia:
R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/393953004
/external/skia/include/core/SkRefCnt.h
874a62acef5ec2ecccdbb99ec4d86402a3341e6a 09-Jul-2014 Mike Klein <mtklein@google.com> Revert "Remove ability for Release code to call getRefCnt() or getWeakRefCnt()."

This reverts commit 4ae94ffce5ecf1b71cb5e295b68bf4ec9e697443.

BUG=skia:

Review URL: https://codereview.chromium.org/382523002
/external/skia/include/core/SkRefCnt.h
4ae94ffce5ecf1b71cb5e295b68bf4ec9e697443 08-Jul-2014 mtklein <mtklein@chromium.org> Remove ability for Release code to call getRefCnt() or getWeakRefCnt().

These getRefCnt() methods are not thread safe, so Skia code should not
be calling them. unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726
R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
/external/skia/include/core/SkRefCnt.h
b59161f0000eb4aca3dcef29f27ffd0fb5a568e5 18-Jun-2014 mtklein <mtklein@chromium.org> Add SkASSERTF.

Example failure:
fRefCnt was 3
../../../usr/local/google/home/mtklein/skia/include/core/SkRefCnt.h:40: failed assertion "(fRefCnt == 1) || (SkDebugf("fRefCnt was %d""\n", fRefCnt), false)"
Command terminated by signal 11

Not pretty, but everything's there. Perhaps we'll think of ways to make it nicer later.

BUG=skia:
R=bsalomon@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/337243004
/external/skia/include/core/SkRefCnt.h
86b0de4745a8a8317b54f23878498633b9210a8f 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Remove SkThread.h from public API."

Too much depends on SkThread being in include/core in Chrome build.

This reverts commit b1aec17df6078115c797839c9646081ccba2bd09.

NOTREECHECKS=true
NOTRY=true
R=reed@google.com, mtklein@google.com
TBR=reed

BUG=skia:

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/303813003

git-svn-id: http://skia.googlecode.com/svn/trunk@14934 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
b1aec17df6078115c797839c9646081ccba2bd09 28-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkThread.h from public API.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/303463009

git-svn-id: http://skia.googlecode.com/svn/trunk@14926 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
f672cead70404080a991ebfb86c38316a4589b23 27-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> teach TSAN about SkSpinlock, SkRefCnt, and SkOnce

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=14353

NOTRY=true
NOTREECHECKS=true

Committed: http://code.google.com/p/skia/source/detail?r=14354

R=bsalomon@google.com, bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/247813005

git-svn-id: http://skia.googlecode.com/svn/trunk@14390 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
a537627f068db022e1d61fdd4507566aa49ee6c5 27-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of teach TSAN about SkSpinlock, SkRefCnt, and SkOnce (https://codereview.chromium.org/247813005/)

Reason for revert:
breaks blink in roll

Original issue's description:
> teach TSAN about SkSpinlock, SkRefCnt, and SkOnce
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14353
>
> NOTRY=true
> NOTREECHECKS=true
>
> Committed: http://code.google.com/p/skia/source/detail?r=14354

R=bsalomon@google.com, bungeman@google.com, mtklein@chromium.org
TBR=bsalomon@google.com, bungeman@google.com, mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/258783005

git-svn-id: http://skia.googlecode.com/svn/trunk@14389 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
6d4e90a2d4c1dc807c7faaeb5ce9bafb3f10d7cc 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> teach TSAN about SkSpinlock, SkRefCnt, and SkOnce

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=14353

NOTRY=true
NOTREECHECKS=true
R=bsalomon@google.com, bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/247813005

git-svn-id: http://skia.googlecode.com/svn/trunk@14354 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
1d24eb20e77f0b291a6dcf6aa054b74f41fa1af2 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> teach TSAN about SkSpinlock, SkRefCnt, and SkOnce

BUG=skia:
R=bsalomon@google.com, bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/247813005

git-svn-id: http://skia.googlecode.com/svn/trunk@14353 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
e3beb6bd7de7fa211681abbb0be58e80b19885e0 07-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> SkNonCopyable should be used with private inheritance.

This is mostly s/public SkNoncopyable/SkNoncopyable/g.

Two classes (SkDrawLooper::Context and SkPicture::OperationList) don't actually work with SkNoncopyable because they introduce a virtual destructor. I added SkNoncopyableVirtual to make them work as intended. Sort of questionable whether they really need to be noncopyable in the first place, but I guess it doesn't hurt to keep the behavior the same.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/226183018

git-svn-id: http://skia.googlecode.com/svn/trunk@14081 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
ea6e14a3825d6f805527ddfbce4fd6b2bf73a7df 04-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> TSAN: use somewhat pithier SK_ANNOTATE_UNPROTECTED_READ.

This is a little bit better practice to be i than the existing SK_ANNOTATE_BENIGN_RACE, as UNPROTECTED_READ will only ignore reads, not writes.

Tag SkRefCnt::unique() as a safe unprotected read like SkOnce's double-checked locking.

BUG=skia:
R=reed@google.com, bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/144953005

git-svn-id: http://skia.googlecode.com/svn/trunk@13309 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
d9947f605a335363b0a0541d6d8cb7a7113ed788 18-Dec-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Split atomic and mutex implementations and make inlinable.

Skia cannot use Chromium's implementation of mutex (Lock) due to static
initializers. However, we would like to be able to use Chromium's
implementation of atomics. This motivates the split of implementation.

Skia's atomic and mutex calls should be inlinable, especially the atomics.
These calls often compile down to very few instructions, and we currently have
the overhead of a function call. This motivates the header implementation.

There is still a desire for the build system to select the implementation, so
the SK_XXX_PLATFORM_H pattern for header files is introduced. This allows the
build system to control which platform specific header files are chosen.

The Chromium side changes (most of which will need to go in before this change
can be found at https://codereview.chromium.org/19477005/ .
The Chromium side changes after this lands can be seen at
https://codereview.chromium.org/98073013 .

Review URL: https://codereview.chromium.org/19808007

git-svn-id: http://skia.googlecode.com/svn/trunk@12738 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
e61a86cfa00ea393ecc4a71fca94e1d476a37ecc 18-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Guard against most unintentionally ephemeral SkAutoFoo instantiations.

I think I applied the trick everywhere possible. Limitations:
- can't be used with templated classes
- all constructors and destructors must be defined inline

A couple of the SkAutoFoo were unused in Skia, Chromium, and Android, so I
deleted them. This change caught the same bugs Cary found in SkPath, plus one
more in SampleApp.

BUG=
R=reed@google.com, caryclark@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/72603005

git-svn-id: http://skia.googlecode.com/svn/trunk@12301 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
10ba006631a0c350aa2bcba188a60404869607c8 25-Oct-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow users to build on top of, instead of beneath, SkRefCnt.

Alternative to r11811.

The Chromium half of this can be seen at https://codereview.chromium.org/40973002/ .

R=reed@google.com

Review URL: https://codereview.chromium.org/40503002

git-svn-id: http://skia.googlecode.com/svn/trunk@11967 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
6d2533ebd2ad5168d08f5a83e681881c0d533949 16-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add hooks for external run-time reference adoption checks to SkRefCnt.

The reference adoption checks are to help detect memory
leaks and bad usage when using SkRefCnt subclasses with
Blink's RefPtr.

BUG=crbug.com/304265
R=reed@google.com, bungeman@google.com

Author: junov@chromium.org

Review URL: https://codereview.chromium.org/25432003

git-svn-id: http://skia.googlecode.com/svn/trunk@11811 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
03087072483378a43f7b3f7a47944614187275eb 02-Oct-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make it explicit that some validate methods are debug only

https://codereview.chromium.org/25716003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11575 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
a4de8c257ea0be8ff7081f645249b6afe5c48e7e 09-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove GrRefCnt.h in favor of SkRefCnt.h

This removes GrRefCnt.h with all its tyepdefs and #defines and just switch them
to the Sk* equivalents.

GrSafeSetNull was promoted to SkSafeSetNull in SkRefCnt.h.

BUG=None
TEST=none, no functional changes.
R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23904003

git-svn-id: http://skia.googlecode.com/svn/trunk@11151 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
f64c6842c15e1ba126639be7578e4642cb396987 20-Jul-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a 'unique' method to SkRefCnt, document the usage, and add support.

std::shared_ptr has a method called 'unique' which captures the concept that
a reference count of 1 is special, and can be used to optimize copy on write.
It also has some undocumented need for memory barriers in certain situations
and those needs are documented here.

The motivation for looking into this is crbug.com/258499 . The use of the
reference count in this manner is a benign race with both ref() and unref().
By introducing sk_atomic_unprotected_read, it is possible for Chromium to
annotate this read to tell ThreadSanitizer that this is known.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/18770007

git-svn-id: http://skia.googlecode.com/svn/trunk@10221 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
39095b9d14b2a2ad7acd1e24b9ebbc20cf7eb4e1 27-Jun-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Alias deref -> unref. This allows Skia objects to be held by WTF::RefPtr
smart pointers without need for another smart pointer type.

Note that the semantics of SkRefCnt match those WTF expects. In
particular, newly created objects have refcount 1 and objects are
deallocated at refcount 0.

This seems like a better fit than the AddRef/Release alises which exist
for scoped_ptr (but seem unused).

BUG=254509
R=reed@google.com

Author: jbroman@chromium.org

Review URL: https://chromiumcodereview.appspot.com/17880003

git-svn-id: http://skia.googlecode.com/svn/trunk@9784 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
6f4cf2a19553b69d5bb10c5cd1005706a9fc6e22 16-Apr-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove 'friend SkRefCnt' from SkData.
https://codereview.chromium.org/13925021/

If a non-POD class does not provide a default destructor, one is
provided by teh compiler. GCC will do so, but only at the point where the
vtable is output; since BlockRef has no implementation its destructor is
never output, so there is no complaint. VC++, however, provides the
destructor implementation as soon as it sees the type. If the destructor
of BlockRef is ever defined an error will be reported (since the
destructor of SkData is private).

Declaring (but does not defining) a destructor for BlockRef fixes two
issues. First, it prevents a default destructor from being provided,
removing the VC++ error. Second, BlockRef now blocks access to the
destructor through '->'.


git-svn-id: http://skia.googlecode.com/svn/trunk@8697 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
2863f082f2524ebae9e69f382b50065189912b47 13-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> have reset() return its argument as a convenience



git-svn-id: http://skia.googlecode.com/svn/trunk@8141 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
e16efc1882ab34a0bb3ae361a2d37f840044cf87 26-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
2b4e5445d2097cd4c849a2d96df9b6075a725c5a 07-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-add SkRefPtr to SkRefCnt.h until all uses of it have been removed from Chrome



git-svn-id: http://skia.googlecode.com/svn/trunk@7044 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
d96d17b9c113ac694138224249ff2ce643e961dd 04-Jan-2013 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkRefPtr

(resubmit of https://codereview.appspot.com/7030059/)
TBR=junov@google.com

Review URL: https://codereview.appspot.com/7030065

git-svn-id: http://skia.googlecode.com/svn/trunk@7030 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
6eb549e8ca3d88d7536859fd5aa3343fc3011f2f 04-Jan-2013 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Remove SkRefPtr" - r7021

samplecode/ still needs to be updated.

Review URL: https://codereview.appspot.com/7032048

git-svn-id: http://skia.googlecode.com/svn/trunk@7022 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
e8a76ae8edc4f90456f9d8f90e56bf97f2657f3a 04-Jan-2013 vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkRefPtr

Review URL: https://codereview.appspot.com/7030059

git-svn-id: http://skia.googlecode.com/svn/trunk@7021 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
9f0af0a285addbeb55db5dd92c3a3b92c144532f 30-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Create aliases AddRef() and Release() to SkRefCnt for compatibility with scoped_refptr
Review URL: https://codereview.appspot.com/6844116

git-svn-id: http://skia.googlecode.com/svn/trunk@6639 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
68d6bb0c119141b0c8637d0b1b3c8b73c7026933 27-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert prev change to reset



git-svn-id: http://skia.googlecode.com/svn/trunk@6571 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
4efd9d9872420b40f618294a0db4bbf7f70405d2 27-Nov-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> guard for self-assignment in reset()



git-svn-id: http://skia.googlecode.com/svn/trunk@6568 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
1dfe88e00aeddf20690fd2469fd17e43f670ee3a 03-Oct-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r5557 (which itself was a revert of r5433). Relands SkPathRef. Will follow with change for extra debug checks to attempt to ferret out http://www.crbug.com/148637.



git-svn-id: http://skia.googlecode.com/svn/trunk@5783 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
6c5418e6c25141cc3a1cc798d55219012bc881ec 14-Sep-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Temporarily revert r5433 due to http://www.crbug.com/148637 until after M23 branch.




git-svn-id: http://skia.googlecode.com/svn/trunk@5557 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
69aca79b5c1cb43f8c3b5c1bee2c0342c8ff6ed1 07-Sep-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkPathRef: one allocation for pts+verbs, path GenID, copy-on-write

Review URL: https://codereview.appspot.com/6488063/



git-svn-id: http://skia.googlecode.com/svn/trunk@5433 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
1fd201b9dfc739b7a615fdc1eb64dbe136e7cf76 22-Aug-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> SkRef for expressions.
https://codereview.appspot.com/6475045/


git-svn-id: http://skia.googlecode.com/svn/trunk@5238 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
91208922687a33df1d5253928b8d5d7d4685c7ac 30-Jul-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Const correct BlockRef in SkAutoTUnref.
https://codereview.appspot.com/6448066/


git-svn-id: http://skia.googlecode.com/svn/trunk@4829 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
1448cf8cb6c6cd4866f7c71bf32ad6bca5d683d1 27-Jul-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Specialize SkAutoTUnref on const T so that operator -> works.

Review URL: http://codereview.appspot.com/6450054/




git-svn-id: http://skia.googlecode.com/svn/trunk@4802 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
f79430350d9f06a72b307af879d7f3bdec7ff706 23-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add protected method for internal_dispose overrides to jam fRefCnt before
calling destructor.

move SkTRefArray to actually inherit from SkRefCnt
Review URL: https://codereview.appspot.com/6422057

git-svn-id: http://skia.googlecode.com/svn/trunk@4719 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
15c0fea699b25343fe6f49668a5632866e1a0306 22-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> AutoScratchTexture can now release its texture and it will return to the texture cache when freed

http://codereview.appspot.com/6262043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4301 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
4d73ac22a1b99402fc8cff78a4eb4b27aa8fe019 13-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Version 2 of the Instance Counting system. This one simplifies the print out of information.

http://codereview.appspot.com/6296069/



git-svn-id: http://skia.googlecode.com/svn/trunk@4255 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
977b9c8af3ef1b9a2fa2a0037cf3734cf2ba13d9 05-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Instance counting for SkRefCnt-derived objects (w/ CanvasTest fix)

http://codereview.appspot.com/6242070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4170 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
25c199343d2683a8eec1e12790b658710389f6fe 05-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r4162



git-svn-id: http://skia.googlecode.com/svn/trunk@4164 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
3227ab5f6454b3b553284abd5c9894a8d1c7e845 05-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added instance counting system for SkRefCnt-derived objects

http://codereview.appspot.com/6242070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4162 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
04640299dc0d71752295a630d58f6160642f3c8e 01-Jun-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> VC++ allows template parameter shadowing.


git-svn-id: http://skia.googlecode.com/svn/trunk@4127 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
e70f798ebca1a66f0b568fa46065ebbad9a13b2f 01-Jun-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Serialize support for GDI.
http://codereview.appspot.com/6263046/



git-svn-id: http://skia.googlecode.com/svn/trunk@4126 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
a02bc1519cf49afa31fb38bed097dd5014880d04 16-May-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> WeakRefCnt
http://codereview.appspot.com/5649046/


git-svn-id: http://skia.googlecode.com/svn/trunk@3978 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
f51018d8f954cc644cc875dc1faab386fd6e85e3 08-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> allow SkAutoTUnref to be used syntactially as the object is refs
Review URL: https://codereview.appspot.com/6189059

git-svn-id: http://skia.googlecode.com/svn/trunk@3870 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
4c888aae25c1f6a420caceec7c42736ba6ddad3d 12-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> write 0 to our refcnt in the destructor, in the off-chance of it helping us
catch reuse-after-delete bugs (debug only)



git-svn-id: http://skia.googlecode.com/svn/trunk@2251 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
a44f7003e5f9d1353bc9274268fb5302e69fc94a 09-Aug-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some ref leaks

Review URL: http://codereview.appspot.com/4837068/



git-svn-id: http://skia.googlecode.com/svn/trunk@2082 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976e 28-Jul-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Automatic update of all copyright notices to reflect new license terms.

I have manually examined all of these diffs and restored a few files that
seem to require manual adjustment.

The following files still need to be modified manually, in a separate CL:

android_sample/SampleApp/AndroidManifest.xml
android_sample/SampleApp/res/layout/layout.xml
android_sample/SampleApp/res/menu/sample.xml
android_sample/SampleApp/res/values/strings.xml
android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
experimental/CiCarbonSampleMain.c
experimental/CocoaDebugger/main.m
experimental/FileReaderApp/main.m
experimental/SimpleCocoaApp/main.m
experimental/iOSSampleApp/Shared/SkAlertPrompt.h
experimental/iOSSampleApp/Shared/SkAlertPrompt.m
experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
gpu/src/android/GrGLDefaultInterface_android.cpp
gyp/common.gypi
gyp_skia
include/ports/SkHarfBuzzFont.h
include/views/SkOSWindow_wxwidgets.h
make.bat
make.py
src/opts/memset.arm.S
src/opts/memset16_neon.S
src/opts/memset32_neon.S
src/opts/opts_check_arm.cpp
src/ports/SkDebug_brew.cpp
src/ports/SkMemory_brew.cpp
src/ports/SkOSFile_brew.cpp
src/ports/SkXMLParser_empty.cpp
src/utils/ios/SkImageDecoder_iOS.mm
src/utils/ios/SkOSFile_iOS.mm
src/utils/ios/SkStream_NSData.mm
tests/FillPathTest.cpp
Review URL: http://codereview.appspot.com/4816058

git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
7f6d6d4571c0682c81f8508ac4862b2dfea20aec 15-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add validate() and SkAutoRef



git-svn-id: http://skia.googlecode.com/svn/trunk@1872 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
7ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577 15-Mar-2011 ctguil@chromium.org <ctguil@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add code needed to build skia as a windows dll within the chromium project.
- Export/import skia APIs if SKIA_DLL is defined.
- This change has no effect on skia.

Review URL: http://codereview.appspot.com/4282042

git-svn-id: http://skia.googlecode.com/svn/trunk@944 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
ddbf4c85dece1bef3b6c97219187a6b616b66346 08-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove unused methods from SkRefPtr, as a check-point for better understanding
what we want to do with this class.



git-svn-id: http://skia.googlecode.com/svn/trunk@903 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
a67573e25faa81ea65e6fc368f66d3f0c0a5f189 25-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> http://codereview.appspot.com/4233041/

Add templated version of SkAutoTUnref.
Add unittests for it.
Remove unused helper apis on SkAutoUnref.



git-svn-id: http://skia.googlecode.com/svn/trunk@858 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
82065d667f64e232bcde2ad849756a6096fcbe6f 07-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkRefCnt safeRef() and safeUnref(), and replace the call-sites with
SkSafeRef() and SkSafeUnref().

This is basically a bug waiting to happen. An optimizing compiler can remove
checks for null on "this" if it chooses. However, SkRefCnt::safeRef() relies on
precisely this check...

void SkRefCnt::safeRef() {
if (this) {
this->ref();
}
}

Since a compiler might skip the if-clause, it breaks the intention of this
method, hence its removal.

static inline void SkSafeRef(SkRefCnt* obj) {
if (obj) {
obj->ref();
}
}

This form is not ignored by an optimizing compile, so we use it instead.




git-svn-id: http://skia.googlecode.com/svn/trunk@762 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
756f6dd82da298375547cb36955be9ac8574d2dc 16-Apr-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> dox



git-svn-id: http://skia.googlecode.com/svn/trunk@556 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
b00cd7258c5ccf856c0dc72840e082306251b278 16-Apr-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkRefPtr class (for testing at the moment)



git-svn-id: http://skia.googlecode.com/svn/trunk@555 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
149e2f6159a797989f6f0fa93ecfaa66cdd55c40 22-May-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkSafeRef / SkSafeUnref as inline static functions, to use in place of our
existing obj->safeRef(), which is unsafe since it can its 'if (this)' can be
optimized away by some compilers.

fix some overflows in mimpmap generation



git-svn-id: http://skia.googlecode.com/svn/trunk@181 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h
8a1c16ff38322f0210116fa7293eb8817c7e477e 17-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> grab from latest android



git-svn-id: http://skia.googlecode.com/svn/trunk@27 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/include/core/SkRefCnt.h