Revert of Refactor to put SkXfermode_opts inside SK_OPTS_NS. (patchset #1 id:1 of...
authormtklein <mtklein@google.com>
Wed, 12 Aug 2015 18:56:43 +0000 (11:56 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 12 Aug 2015 18:56:43 +0000 (11:56 -0700)
commit082e329887a8f1efe4e1020f0a0a6ea09961712d
treeef1018c577771f493bc499c341c701becb12b617
parent147dc06f3bda762f948cfdcc3fc43cecbf32e826
Revert of Refactor to put SkXfermode_opts inside SK_OPTS_NS. (patchset #1 id:1 of https://codereview.chromium.org/1286093004/ )

Reason for revert:
Maybe causing test / gold problems?

Original issue's description:
> Refactor to put SkXfermode_opts inside SK_OPTS_NS.
>
> Without this refactor I was getting warnings previously about having code
> inside namespace SK_OPTS_NS (e.g. namespace sse2, namespace neon) referring to
> code inside an anonymous namespace (Sk4px, SkPMFloat, Sk4f, etc) [1].
>
> That low-level code was in an anonymous namespace to allow multiple independent
> copies of its methods to be instantiated without the linker getting confused /
> offended about violating the One Definition Rule.  This was only happening in
> Debug mode where the methods were not being inlined.
>
> To fix this all, I've force-inlined the methods of the low-level code and
> removed the anonymous namespace.
>
> BUG=skia:4117
>
>
> [1] Here is what those errors looked like:
>
> In file included from ../../../../src/core/SkOpts.cpp:18:0:
> ../../../../src/opts/SkXfermode_opts.h:193:7: error: 'portable::Sk4pxXfermode' has a field 'portable::Sk4pxXfermode::fProc4' whose type uses the anonymous namespace [-Werror]
>  class Sk4pxXfermode : public SkProcCoeffXfermode {
>        ^
> ../../../../src/opts/SkXfermode_opts.h:193:7: error: 'portable::Sk4pxXfermode' has a field 'portable::Sk4pxXfermode::fAAProc4' whose type uses the anonymous namespace [-Werror]
> ../../../../src/opts/SkXfermode_opts.h:235:7: error: 'portable::SkPMFloatXfermode' has a field 'portable::SkPMFloatXfermode::fProcF' whose type uses the anonymous namespace [-Werror]
>  class SkPMFloatXfermode : public SkProcCoeffXfermode {
>        ^
> cc1plus: all warnings being treated as errors
>
> Committed: https://skia.googlesource.com/skia/+/b07bee3121680b53b98b780ac08d14d374dd4c6f

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

Review URL: https://codereview.chromium.org/1284333002
15 files changed:
src/core/Sk4px.h
src/core/SkNx.h
src/core/SkOpts.cpp
src/core/SkPMFloat.h
src/opts/Sk4px_NEON.h
src/opts/Sk4px_SSE2.h
src/opts/Sk4px_none.h
src/opts/SkNx_neon.h
src/opts/SkNx_sse.h
src/opts/SkOpts_neon.cpp
src/opts/SkOpts_sse2.cpp
src/opts/SkPMFloat_neon.h
src/opts/SkPMFloat_none.h
src/opts/SkPMFloat_sse.h
src/opts/SkXfermode_opts.h