Go to file
John Stiles 14a487fd54 Replace getConstantSubexpression with getConstantValue.
The only type of expressions that getConstantSubexpression could ever
return are Literal and nullptr. getConstantValue now returns an
optional<double>; nullopt indicates a non-constant value in the slot.
This simplifies most use cases, and allows us to get rid of some extra
"zero" and "one" Literal objects in some of our Constructor classes.

This change fixes a recent fuzzer issue. The fuzzer had discovered that
calling `getConstantSubexpression` on a ConstructorCompoundCast that
contained a compile-time-constant value would return literals of the
wrong type (the cast was not applied). By nesting repeated matrix casts,
this type confusion could be turned into an assertion.

Change-Id: Icee69219e6db2822ffdfab4e5ccdaff54584a4b6
Bug: oss-fuzz:41000
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471376
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-11-15 14:46:21 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel [infra] Add Bazel rules for codecs. 2021-11-11 20:10:01 +00:00
bench Move breadcrumb and inner-fan triangles out of PathCurveTessellator 2021-11-12 15:26:51 +00:00
bin [sk] Update asset download references to use SK 2021-09-17 16:55:53 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Add Abseil dependency for Dawn 2021-09-22 22:05:32 +00:00
client_utils/android Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
demos.skia.org [demos] Add WebGPU demo using origin trial 2021-10-08 16:35:34 +00:00
dm [graphite] Rearrange internal Context/Recorder/Recording relationship 2021-10-15 13:51:59 +00:00
docker [infra] Update cmake docker image to be Debian 10 2021-07-23 11:21:31 +00:00
docs/examples Reland "Add sRGB 8888 colortype" 2021-08-24 12:56:32 +00:00
example Remove SDL from DEPS (and SDL example that used it) 2021-05-27 21:37:57 +00:00
experimental [graphite] Be explicit about pending draws on DrawContext destruction 2021-11-13 00:52:05 +00:00
fuzz Make all shader caps uniquely-owned 2021-10-21 20:11:03 +00:00
gm Reland "Implement batching for convex tessellated paths" 2021-11-11 20:01:40 +00:00
gn Replace getConstantSubexpression with getConstantValue. 2021-11-15 14:46:21 +00:00
include [infra] Add POC Bazel rules for CanvasKit 2021-11-12 21:38:46 +00:00
infra Update SKP version 2021-11-14 23:46:08 +00:00
modules [infra] Add POC Bazel rules for CanvasKit 2021-11-12 21:38:46 +00:00
platform_tools change method signature for FontChain 2021-10-28 01:57:32 +00:00
resources Replace getConstantSubexpression with getConstantValue. 2021-11-15 14:46:21 +00:00
samplecode Move breadcrumb and inner-fan triangles out of PathCurveTessellator 2021-11-12 15:26:51 +00:00
site Fix SkSL doc examples that used reserved identifiers 2021-11-05 18:06:46 +00:00
specs [infra] Port serve.py from Python2 to 3 2021-08-31 15:28:19 +00:00
src Replace getConstantSubexpression with getConstantValue. 2021-11-15 14:46:21 +00:00
tests Replace getConstantSubexpression with getConstantValue. 2021-11-15 14:46:21 +00:00
third_party Roll skcms from 0d5496480324 to 9019104061d8 (1 revision) 2021-11-12 16:50:37 +00:00
toolchain [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
tools Remove GPU V2 2021-11-11 17:11:19 +00:00
.bazelrc [infra] Add Bazel rules for codecs. 2021-11-11 20:10:01 +00:00
.bazelversion [infra] Add Bazel rules for codecs. 2021-11-11 20:10:01 +00:00
.clang-format no more bin packing in .clang-format 2021-03-04 17:22:50 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore Add .vscode to the default gitignore list. 2021-10-13 15:23:02 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
AUTHORS Typo: "then then" -> "then" 2021-11-08 17:06:28 +00:00
BUILD.bazel [infra] Add POC Bazel rules for CanvasKit 2021-11-12 21:38:46 +00:00
BUILD.gn [infra] Add Bazel rules for codecs. 2021-11-11 20:10:01 +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 eefb41112624 to ae3f67ab4a3a (12 revisions) 2021-11-15 05:25:39 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-02 23:41:54 +00:00
go.mod Update go/skia.org/infra in go.mod/go.sum 2021-11-10 15:26:38 +00:00
go.sum Update go/skia.org/infra in go.mod/go.sum 2021-11-10 15:26:38 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS [infra] Add wildcard OWNERS 2021-08-30 19:19:34 +00:00
PRESUBMIT.py Remove AUTHORS check from PRESUBMIT.py 2021-09-30 14:12:18 +00:00
public.bzl Move ToolUtils::make_big_path() to bench/ 2021-10-14 12:57:29 +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 Add #ifdefs to GrBackendSemaphore to guard includes and methods 2021-11-05 17:58:32 +00:00
whitespace.txt Test SkCQ 2021-07-24 21:07:28 +00:00
WORKSPACE.bazel [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +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.