Go to file
John Stiles 3ae071e4ea Update SymbolTable::takeOwnership interface to improve type safety.
Previously, `takeOwnership` was overloaded to take Symbols or IRNodes.
However, Symbols themselves are a subclass of IRNode, so attempting to
call `takeOwnership` with any subclass of Symbol was considered
ambiguous. This was fixed by splitting the API into
`takeOwnershipOfSymbol` and `takeOwnershipOfIRNode`, letting the caller
decide explicitly rather than forcing the compiler to choose.

These APIs also returned their input back to the caller as
`const Symbol*` and `const IRNode*`, although generally the caller
actually wanted the object in its original type. This meant most uses
of the return type were immediately cast back to their actual type.
(Some callers accidentally stripped const as well, although it would be
wrong to mutate an object in the symbol table.) Added templates to
allow the input to be returned as its original type, and removed
the now-unnecessary casts.

The String `takeOwnership` call was updated to `takeOwnershipOfString`
for consistency with its peers.

Change-Id: Ib44a08097d89caec2c30deb4a25463330b7d2bf2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307841
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-08-05 20:06:06 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench add a global may-we-JIT flag 2020-08-05 16:35:45 +00:00
bin bin/try: automatically set 'git cl issue' when not found 2020-06-25 17:44:01 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Use Dawn's BUILD.gn instead of defining another one for Skia. 2020-04-13 23:26:31 +00:00
client_utils/android Enable ClangTidy check modernize-make-unique. 2020-08-03 17:53:52 +00:00
demos.skia.org Modify CanvasKit to work in a Web Worker and add a demo of it in action. 2020-07-21 22:21:06 +00:00
dm Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
docker Fix swiftshader Dockerfile. 2020-07-20 17:17:53 +00:00
docs/examples Enable ClangTidy check modernize-make-unique. 2020-08-03 17:53:52 +00:00
example Clean up GrContext references in the src/gpu 2020-07-16 14:14:08 +00:00
experimental Use more of pathbuilder 2020-08-03 21:04:55 +00:00
fuzz updated skp fuzzer 2020-07-31 21:27:13 +00:00
gm remove overdrawcolorfilter_runtime 2020-08-05 17:58:25 +00:00
gn Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
include Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
infra Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
modules Publish version 0.17.3 2020-08-05 15:23:05 +00:00
platform_tools get rid of unused include 2020-08-05 18:48:47 +00:00
resources Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
samplecode Rename GrTessellateStroke* -> GrStrokeTessellate* and friends 2020-07-31 02:24:05 +00:00
site A quick start guide for CanvasKit app structure 2020-08-03 19:17:17 +00:00
specs Fix CanvasKit generated documentation to work with emscripten 1.39.16. 2020-05-27 12:23:32 +00:00
src Update SymbolTable::takeOwnership interface to improve type safety. 2020-08-05 20:06:06 +00:00
tests Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
third_party Roll skcms from 8da4cb002cb4 to b1f9041ffe31 (1 revision) 2020-07-31 13:54:35 +00:00
tools add a global may-we-JIT flag 2020-08-05 16:35:45 +00:00
.clang-format Disable BinPackParameters in .clang-format 2020-03-27 14:32:40 +00:00
.clang-tidy Enable ClangTidy check modernize-make-unique. 2020-08-03 17:53:52 +00:00
.gitignore [infra] Update recipe dependencies 2020-08-03 11:34:57 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS GCC: fix unknown attribute warnings for no_sanitize 2020-07-06 13:52:22 +00:00
BUILD.gn Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll ANGLE from 709472c9dd0c to 6c873cfde957 (13 revisions) 2020-08-05 05:08:39 +00:00
go.mod Update Go Deps 2020-07-25 05:33:32 +00:00
go.sum Update Go Deps 2020-07-25 05:33:32 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS add OWNERS file 2017-12-01 19:50:19 +00:00
PRESUBMIT.py PRESUBMIT: Don't check formatting of deleted files 2020-04-08 10:36:09 +00:00
public.bzl Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Reland "Add an SkImageGenerator that uses NDK APIs" 2020-08-05 18:55:30 +00:00
whitespace.txt Whitespace change to re-trigger Mac/iOS tests 2020-02-23 20:55:01 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.