OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 2 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 * Library General Public License for more details. | 12 * Library General Public License for more details. |
13 * | 13 * |
14 * You should have received a copy of the GNU Library General Public License | 14 * You should have received a copy of the GNU Library General Public License |
15 * along with this library; see the file COPYING.LIB. If not, write to | 15 * along with this library; see the file COPYING.LIB. If not, write to |
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
17 * Boston, MA 02110-1301, USA. | 17 * Boston, MA 02110-1301, USA. |
18 */ | 18 */ |
19 | 19 |
20 #include "core/svg/SVGPathByteStreamSource.h" | 20 #include "core/svg/SVGPathByteStreamSource.h" |
21 | 21 |
22 namespace blink { | 22 namespace blink { |
23 | 23 |
24 bool SVGPathByteStreamSource::hasMoreData() const | |
25 { | |
26 return m_streamCurrent < m_streamEnd; | |
27 } | |
28 | |
29 SVGPathSegType SVGPathByteStreamSource::peekSegmentType() | |
30 { | |
31 ASSERT(hasMoreData()); | |
32 ASSERT(m_streamCurrent + sizeof(unsigned short) <= m_streamEnd); | |
33 unsigned short commandBytes; | |
34 memcpy(&commandBytes, m_streamCurrent, sizeof(commandBytes)); | |
35 return static_cast<SVGPathSegType>(commandBytes); | |
36 } | |
37 | |
38 PathSegmentData SVGPathByteStreamSource::parseSegment() | 24 PathSegmentData SVGPathByteStreamSource::parseSegment() |
39 { | 25 { |
40 ASSERT(hasMoreData()); | 26 ASSERT(hasMoreData()); |
41 PathSegmentData segment; | 27 PathSegmentData segment; |
42 segment.command = static_cast<SVGPathSegType>(readSVGSegmentType()); | 28 segment.command = static_cast<SVGPathSegType>(readSVGSegmentType()); |
43 | 29 |
44 switch (segment.command) { | 30 switch (segment.command) { |
45 case PathSegCurveToCubicRel: | 31 case PathSegCurveToCubicRel: |
46 case PathSegCurveToCubicAbs: | 32 case PathSegCurveToCubicAbs: |
47 segment.point1 = readFloatPoint(); | 33 segment.point1 = readFloatPoint(); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 segment.targetPoint = readFloatPoint(); | 68 segment.targetPoint = readFloatPoint(); |
83 break; | 69 break; |
84 } | 70 } |
85 default: | 71 default: |
86 ASSERT_NOT_REACHED(); | 72 ASSERT_NOT_REACHED(); |
87 } | 73 } |
88 return segment; | 74 return segment; |
89 } | 75 } |
90 | 76 |
91 } // namespace blink | 77 } // namespace blink |
OLD | NEW |