diff options
author | mbelshe@google.com <mbelshe@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-06 20:10:37 +0000 |
---|---|---|
committer | mbelshe@google.com <mbelshe@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-06 20:10:37 +0000 |
commit | ad80d5e5bc4b8924778b8418058761ef0ad19aa4 (patch) | |
tree | 44cb9166e556d835e2fd6ae62565ffb4e47429c8 /net/flip/flip_frame_builder.h | |
parent | 3a20aba73b4d981971a285a4ea38a9d5890de02d (diff) | |
download | chromium_src-ad80d5e5bc4b8924778b8418058761ef0ad19aa4.zip chromium_src-ad80d5e5bc4b8924778b8418058761ef0ad19aa4.tar.gz chromium_src-ad80d5e5bc4b8924778b8418058761ef0ad19aa4.tar.bz2 |
Take 2:
Rework the FlipProtocol to separate the C-like structs from the
methods. Without this refactoring, we didn't have a clean way
to allocate and deallocate FlipFrames. Now we can use the
scoped_ptr cleanly.
Summary of misc changes:
* Merged in some small changes from the GFE side.
* flip_protocol.h Changes substantially. We now have separate
structs and classes. No longer can you cast from one frame
type to another. All FlipFrame classes derive from FlipFrame.
A FlipFrame owns a buffer which is used for the frame, and
when you create the Frame, you can specify whether the FlipFrame
will self-clean its buffer or not. This makes it cheap to
instantiate a FlipFrame class on the stack and use it temporarily
for accessing fields without having to do any copies or allocations.
* You can't use sizeof(FlipFrame) anymore - that is now a class.
Added a static "size()" method to each FlipFrame type for
declaring its real size.
* Refactored a couple of routines in flip_framer. These were
previously in a huge state machine (ProcessInput), just copied
the code into subroutines.
* Added flip_protocol_test to the mix from the gfe side. Much of
this is a refactoring from flip_framer_test.
* Eliminated reinterpret_casts as much as I could and got rid of
all uses of scoped_array for FlipFrames.
BUG=none
TEST=all flip tests reworked
Review URL: http://codereview.chromium.org/376012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31277 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/flip/flip_frame_builder.h')
-rw-r--r-- | net/flip/flip_frame_builder.h | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/net/flip/flip_frame_builder.h b/net/flip/flip_frame_builder.h index fa59c45..32b6035 100644 --- a/net/flip/flip_frame_builder.h +++ b/net/flip/flip_frame_builder.h @@ -43,14 +43,9 @@ class FlipFrameBuilder { // Returns the size of the FlipFrameBuilder's data. int length() const { return length_; } - // Returns the data for this FlipFrameBuilder. - const FlipFrame* data() const { - return reinterpret_cast<FlipFrame*>(buffer_); - } - // Takes the buffer from the FlipFrameBuilder. FlipFrame* take() { - FlipFrame* rv = reinterpret_cast<FlipFrame*>(buffer_); + FlipFrame* rv = new FlipFrame(buffer_, true); buffer_ = NULL; capacity_ = 0; length_ = 0; |