| Index: gpu/command_buffer/service/common_decoder.h
 | 
| diff --git a/gpu/command_buffer/service/common_decoder.h b/gpu/command_buffer/service/common_decoder.h
 | 
| index aaf860fd7b33068540206603da3162a9fbab871a..fc9ecf22433266fe4351b7a07e959a09437e3626 100644
 | 
| --- a/gpu/command_buffer/service/common_decoder.h
 | 
| +++ b/gpu/command_buffer/service/common_decoder.h
 | 
| @@ -155,9 +155,7 @@ class GPU_EXPORT CommonDecoder : NON_EXPORTED_BASE(public AsyncAPIInterface) {
 | 
|    // Generate a member function prototype for each command in an automated and
 | 
|    // typesafe way.
 | 
|    #define COMMON_COMMAND_BUFFER_CMD_OP(name)             \
 | 
| -     error::Error Handle##name(                          \
 | 
| -       uint32 immediate_data_size,                       \
 | 
| -       const cmd::name& args);                           \
 | 
| +     error::Error Handle##name(uint32 immediate_data_size, const void* data);
 | 
|  
 | 
|    COMMON_COMMAND_BUFFER_CMDS(COMMON_COMMAND_BUFFER_CMD_OP)
 | 
|  
 | 
| @@ -167,6 +165,22 @@ class GPU_EXPORT CommonDecoder : NON_EXPORTED_BASE(public AsyncAPIInterface) {
 | 
|  
 | 
|    typedef std::map<uint32, linked_ptr<Bucket> > BucketMap;
 | 
|    BucketMap buckets_;
 | 
| +
 | 
| +  typedef Error (CommonDecoder::*CmdHandler)(
 | 
| +      uint32 immediate_data_size,
 | 
| +      const void* data);
 | 
| +
 | 
| +  // A struct to hold info about each command.
 | 
| +  struct CommandInfo {
 | 
| +    CmdHandler cmd_handler;
 | 
| +    uint8 arg_flags;   // How to handle the arguments for this command
 | 
| +    uint8 cmd_flags;   // How to handle this command
 | 
| +    uint16 arg_count;  // How many arguments are expected for this command.
 | 
| +  };
 | 
| +
 | 
| +  // A table of CommandInfo for all the commands.
 | 
| +  static const CommandInfo command_info[];
 | 
| +
 | 
|  };
 | 
|  
 | 
|  }  // namespace gpu
 | 
| 
 |