Index: net/websockets/websocket_frame.cc |
diff --git a/net/websockets/websocket_frame.cc b/net/websockets/websocket_frame.cc |
index f05b5b7615262f84f16fd6611f5239d44641962d..763712a6f575d67481b9ec4a0e85f9927beea72f 100644 |
--- a/net/websockets/websocket_frame.cc |
+++ b/net/websockets/websocket_frame.cc |
@@ -41,18 +41,27 @@ inline void MaskWebSocketFramePayloadByBytes( |
namespace net { |
-scoped_ptr<WebSocketFrameHeader> WebSocketFrameHeader::Clone() { |
+scoped_ptr<WebSocketFrameHeader> WebSocketFrameHeader::Clone() const { |
scoped_ptr<WebSocketFrameHeader> ret(new WebSocketFrameHeader(opcode)); |
- ret->final = final; |
- ret->reserved1 = reserved1; |
- ret->reserved2 = reserved2; |
- ret->reserved3 = reserved3; |
- ret->opcode = opcode; |
- ret->masked = masked; |
- ret->payload_length = payload_length; |
+ ret->CopyFrom(*this); |
return ret.Pass(); |
} |
+void WebSocketFrameHeader::CopyFrom(const WebSocketFrameHeader& source) { |
+ final = source.final; |
+ reserved1 = source.reserved1; |
+ reserved2 = source.reserved2; |
+ reserved3 = source.reserved3; |
+ opcode = source.opcode; |
+ masked = source.masked; |
+ payload_length = source.payload_length; |
+} |
+ |
+WebSocketFrame::WebSocketFrame(WebSocketFrameHeader::OpCode opcode) |
+ : header(opcode) {} |
+ |
+WebSocketFrame::~WebSocketFrame() {} |
+ |
WebSocketFrameChunk::WebSocketFrameChunk() : final_chunk(false) {} |
WebSocketFrameChunk::~WebSocketFrameChunk() {} |
@@ -195,7 +204,7 @@ void MaskWebSocketFramePayload(const WebSocketMaskingKey& masking_key, |
// Create a version of the mask which is rotated by the appropriate offset |
// for our alignment. The "trick" here is that 0 XORed with the mask will |
// give the value of the mask for the appropriate byte. |
- char realigned_mask[kMaskingKeyLength] = { 0 }; |
+ char realigned_mask[kMaskingKeyLength] = {}; |
MaskWebSocketFramePayloadByBytes( |
masking_key, |
(frame_offset + aligned_begin - data) % kMaskingKeyLength, |