Suppress UBSan's false positives for virtual base classes.
[chromium-blink-merge.git] / cc / animation / animation_curve.cc
blob3acff5d1f626ddea455abed80ccf151fb1694161
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/animation/animation_curve.h"
7 #include "base/logging.h"
8 #include "cc/animation/scroll_offset_animation_curve.h"
10 namespace cc {
12 const ColorAnimationCurve* AnimationCurve::ToColorAnimationCurve() const {
13 DCHECK(Type() == AnimationCurve::Color);
14 return static_cast<const ColorAnimationCurve*>(this);
17 AnimationCurve::CurveType ColorAnimationCurve::Type() const { return Color; }
19 const FloatAnimationCurve* AnimationCurve::ToFloatAnimationCurve() const {
20 DCHECK(Type() == AnimationCurve::Float);
21 return static_cast<const FloatAnimationCurve*>(this);
24 AnimationCurve::CurveType FloatAnimationCurve::Type() const {
25 return Float;
28 const TransformAnimationCurve* AnimationCurve::ToTransformAnimationCurve()
29 const {
30 DCHECK(Type() == AnimationCurve::Transform);
31 return static_cast<const TransformAnimationCurve*>(this);
34 AnimationCurve::CurveType TransformAnimationCurve::Type() const {
35 return Transform;
38 const FilterAnimationCurve* AnimationCurve::ToFilterAnimationCurve() const {
39 DCHECK(Type() == AnimationCurve::Filter);
40 return static_cast<const FilterAnimationCurve*>(this);
43 AnimationCurve::CurveType FilterAnimationCurve::Type() const {
44 return Filter;
47 const ScrollOffsetAnimationCurve* AnimationCurve::ToScrollOffsetAnimationCurve()
48 const {
49 DCHECK(Type() == AnimationCurve::ScrollOffset);
50 return static_cast<const ScrollOffsetAnimationCurve*>(this);
53 ScrollOffsetAnimationCurve* AnimationCurve::ToScrollOffsetAnimationCurve() {
54 DCHECK(Type() == AnimationCurve::ScrollOffset);
55 return static_cast<ScrollOffsetAnimationCurve*>(this);
58 } // namespace cc