Bug 41023 - Add a SimpleArgumentCoder class template that works on POD types
Summary: Add a SimpleArgumentCoder class template that works on POD types
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other OS X 10.5
: P2 Normal
Assignee: Anders Carlsson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-22 16:51 PDT by Anders Carlsson
Modified: 2010-06-22 17:36 PDT (History)
3 users (show)

See Also:


Attachments
Patch (8.62 KB, patch)
2010-06-22 16:51 PDT, Anders Carlsson
sam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Anders Carlsson 2010-06-22 16:51:02 PDT
Add a SimpleArgumentCoder class template that works on POD types
Comment 1 Anders Carlsson 2010-06-22 16:51:41 PDT
Created attachment 59444 [details]
Patch
Comment 2 Sam Weinig 2010-06-22 16:53:09 PDT
Comment on attachment 59444 [details]
Patch

> Index: WebKit2/ChangeLog
> ===================================================================
> --- WebKit2/ChangeLog	(revision 61638)
> +++ WebKit2/ChangeLog	(working copy)
> @@ -1,3 +1,17 @@
> +2010-06-22  Anders Carlsson  <andersca@apple.com>
> +
> +        Reviewed by NOBODY (OOPS!).
> +
> +        Add a SimpleArgumentCoder class template that works on POD types
> +        https://bugs.webkit.org/show_bug.cgi?id=41023
> +
> +        * Platform/CoreIPC/SimpleArgumentCoder.h: Added.
> +        (CoreIPC::SimpleArgumentCoder::encode):
> +        (CoreIPC::SimpleArgumentCoder::decode):
> +        * Shared/WebCoreTypeArgumentMarshalling.h:
> +        (CoreIPC::):
> +        * WebKit2.xcodeproj/project.pbxproj:
> +
>  2010-06-22  Anders Carlsson  <andersca@apple.com>
>  
>          Reviewed by Sam Weinig.
> Index: WebKit2/Platform/CoreIPC/SimpleArgumentCoder.h
> ===================================================================
> --- WebKit2/Platform/CoreIPC/SimpleArgumentCoder.h	(revision 0)
> +++ WebKit2/Platform/CoreIPC/SimpleArgumentCoder.h	(revision 0)
> @@ -0,0 +1,48 @@
> +/*
> + * Copyright (C) 2010 Apple Inc. All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
> + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
> + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> + * THE POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#ifndef SimpleArgumentCoder_h
> +#define SimpleArgumentCoder_h
> +
> +#include "ArgumentCoder.h"
> +
> +namespace CoreIPC {
> +
> +// An argument coder works on POD types
> +template<typename T> struct SimpleArgumentCoder {
> +    static void encode(ArgumentEncoder* encoder, const T& t)
> +    {
> +        encoder->encodeBytes(reinterpret_cast<const uint8_t*>(&t), sizeof(T));
> +    }
> +    static bool decode(ArgumentDecoder* decoder, T& t)
> +    {
> +        return decoder->decodeBytes(reinterpret_cast<uint8_t*>(&t), sizeof(T));
> +    }
> +};
> +    
> +}

This should have a closing comment.

> +
> +
> +#endif // SimpleArgumentCoder_h

Two newlines where only one is needed.

r=me.
Comment 3 Anders Carlsson 2010-06-22 16:55:40 PDT
Committed r61639: <http://trac.webkit.org/changeset/61639>
Comment 4 WebKit Review Bot 2010-06-22 17:36:12 PDT
http://trac.webkit.org/changeset/61639 might have broken Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/61640
http://trac.webkit.org/changeset/61638
http://trac.webkit.org/changeset/61639