Avoid platform-dependent function params in Fuzzer
authorKevin Lubick <kjlubick@google.com>
Thu, 10 Nov 2016 21:17:49 +0000 (16:17 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Thu, 10 Nov 2016 22:52:03 +0000 (22:52 +0000)
commit416b248312efe7556f980d390254df8503bbbad7
tree8867f718fad318040e6576aa94b3c2cefa6f5929
parent2512db21f48ecda9215926b49436c5b534f5da82
Avoid platform-dependent function params in Fuzzer

We use this approach instead of T next() because different compilers
evaluate function parameters in different orders. If fuzz->next()
returned 5 and then 7, foo(fuzz->next(), fuzz->next()) would be
foo(5, 7) when compiled on GCC and foo(7, 5) when compiled on Clang.
By requiring params to be passed in, we avoid the temptation to call
next() in a way that does not consume fuzzed bytes in a single
platform-independent order.

BUG=skia:

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

Change-Id: I35de849f82e8be45378f662a48100eb732fa8895
Reviewed-on: https://skia-review.googlesource.com/4392
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
fuzz/FilterFuzz.cpp
fuzz/Fuzz.h
fuzz/FuzzGradients.cpp
fuzz/FuzzParsePath.cpp
fuzz/FuzzPathop.cpp
fuzz/FuzzScaleToSides.cpp