Index: net/spdy/spdy_protocol.cc |
diff --git a/net/spdy/spdy_protocol.cc b/net/spdy/spdy_protocol.cc |
index adf76ef0c98975c3c15f981e388244689be20d2a..1c9254e3045679670228efdf1552656dce53c635 100644 |
--- a/net/spdy/spdy_protocol.cc |
+++ b/net/spdy/spdy_protocol.cc |
@@ -46,54 +46,13 @@ SpdyPriority Http2WeightToSpdy3Priority(int weight) { |
} |
bool IsValidFrameType(int frame_type_field) { |
- // Check for recognized extensions. |
- if (frame_type_field == SerializeFrameType(ALTSVC) || |
- frame_type_field == SerializeFrameType(BLOCKED)) { |
- return true; |
- } |
- |
- // DATA is the first valid frame. |
- if (frame_type_field < SerializeFrameType(DATA)) { |
- return false; |
- } |
- |
- // CONTINUATION is the last valid frame. |
- if (frame_type_field > SerializeFrameType(CONTINUATION)) { |
- return false; |
- } |
- |
- return true; |
+ return frame_type_field >= MIN_FRAME_TYPE && |
+ frame_type_field <= MAX_FRAME_TYPE; |
} |
SpdyFrameType ParseFrameType(int frame_type_field) { |
- switch (frame_type_field) { |
- case 0: |
- return DATA; |
- case 1: |
- return HEADERS; |
- case 2: |
- return PRIORITY; |
- case 3: |
- return RST_STREAM; |
- case 4: |
- return SETTINGS; |
- case 5: |
- return PUSH_PROMISE; |
- case 6: |
- return PING; |
- case 7: |
- return GOAWAY; |
- case 8: |
- return WINDOW_UPDATE; |
- case 9: |
- return CONTINUATION; |
- case 10: |
- return ALTSVC; |
- case 11: |
- return BLOCKED; |
- } |
- SPDY_BUG << "Unhandled frame type " << frame_type_field; |
- return DATA; |
+ SPDY_BUG_IF(!IsValidFrameType(frame_type_field)) << "Invalid frame type."; |
+ return static_cast<SpdyFrameType>(frame_type_field); |
} |
int SerializeFrameType(SpdyFrameType frame_type) { |