Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Side by Side Diff: ppapi/proxy/ppapi_param_traits.cc

Issue 9447084: Refactor Pickle Read methods to use higher performance PickleIterator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: jar feedback Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ppapi/proxy/ppapi_param_traits.h" 5 #include "ppapi/proxy/ppapi_param_traits.h"
6 6
7 #include <string.h> // For memcpy 7 #include <string.h> // For memcpy
8 8
9 #include "ppapi/c/pp_file_info.h" 9 #include "ppapi/c/pp_file_info.h"
10 #include "ppapi/c/pp_resource.h" 10 #include "ppapi/c/pp_resource.h"
(...skipping 21 matching lines...) Expand all
32 // Since we allocate the inner class when you call the default constructor and 32 // Since we allocate the inner class when you call the default constructor and
33 // transfer the inner class when you do operator=, the entire vector will end 33 // transfer the inner class when you do operator=, the entire vector will end
34 // up referring to the same inner class. Deserializing into this will just end 34 // up referring to the same inner class. Deserializing into this will just end
35 // up overwriting the same item over and over, since all the SerializedVars 35 // up overwriting the same item over and over, since all the SerializedVars
36 // will refer to the same thing. 36 // will refer to the same thing.
37 // 37 //
38 // The solution is to make a new object for each deserialized item, and then 38 // The solution is to make a new object for each deserialized item, and then
39 // add it to the vector one at a time. 39 // add it to the vector one at a time.
40 template<typename T> 40 template<typename T>
41 bool ReadVectorWithoutCopy(const Message* m, 41 bool ReadVectorWithoutCopy(const Message* m,
42 void** iter, 42 PickleReader* iter,
43 std::vector<T>* output) { 43 std::vector<T>* output) {
44 // This part is just a copy of the the default ParamTraits vector Read(). 44 // This part is just a copy of the the default ParamTraits vector Read().
45 int size; 45 int size;
46 // ReadLength() checks for < 0 itself. 46 // ReadLength() checks for < 0 itself.
47 if (!m->ReadLength(iter, &size)) 47 if (!m->ReadLength(iter, &size))
48 return false; 48 return false;
49 // Resizing beforehand is not safe, see BUG 1006367 for details. 49 // Resizing beforehand is not safe, see BUG 1006367 for details.
50 if (INT_MAX / sizeof(T) <= static_cast<size_t>(size)) 50 if (INT_MAX / sizeof(T) <= static_cast<size_t>(size))
51 return false; 51 return false;
52 52
(...skipping 21 matching lines...) Expand all
74 } // namespace 74 } // namespace
75 75
76 // PP_Bool --------------------------------------------------------------------- 76 // PP_Bool ---------------------------------------------------------------------
77 77
78 // static 78 // static
79 void ParamTraits<PP_Bool>::Write(Message* m, const param_type& p) { 79 void ParamTraits<PP_Bool>::Write(Message* m, const param_type& p) {
80 ParamTraits<bool>::Write(m, PP_ToBool(p)); 80 ParamTraits<bool>::Write(m, PP_ToBool(p));
81 } 81 }
82 82
83 // static 83 // static
84 bool ParamTraits<PP_Bool>::Read(const Message* m, void** iter, param_type* r) { 84 bool ParamTraits<PP_Bool>::Read(const Message* m, PickleReader* iter, param_type * r) {
85 // We specifically want to be strict here about what types of input we accept, 85 // We specifically want to be strict here about what types of input we accept,
86 // which ParamTraits<bool> does for us. We don't want to deserialize "2" into 86 // which ParamTraits<bool> does for us. We don't want to deserialize "2" into
87 // a PP_Bool, for example. 87 // a PP_Bool, for example.
88 bool result = false; 88 bool result = false;
89 if (!ParamTraits<bool>::Read(m, iter, &result)) 89 if (!ParamTraits<bool>::Read(m, iter, &result))
90 return false; 90 return false;
91 *r = PP_FromBool(result); 91 *r = PP_FromBool(result);
92 return true; 92 return true;
93 } 93 }
94 94
95 // static 95 // static
96 void ParamTraits<PP_Bool>::Log(const param_type& p, std::string* l) { 96 void ParamTraits<PP_Bool>::Log(const param_type& p, std::string* l) {
97 } 97 }
98 98
99 // PP_FileInfo ------------------------------------------------------------- 99 // PP_FileInfo -------------------------------------------------------------
100 100
101 // static 101 // static
102 void ParamTraits<PP_FileInfo>::Write(Message* m, const param_type& p) { 102 void ParamTraits<PP_FileInfo>::Write(Message* m, const param_type& p) {
103 ParamTraits<int64_t>::Write(m, p.size); 103 ParamTraits<int64_t>::Write(m, p.size);
104 ParamTraits<int>::Write(m, static_cast<int>(p.type)); 104 ParamTraits<int>::Write(m, static_cast<int>(p.type));
105 ParamTraits<int>::Write(m, static_cast<int>(p.system_type)); 105 ParamTraits<int>::Write(m, static_cast<int>(p.system_type));
106 ParamTraits<double>::Write(m, p.creation_time); 106 ParamTraits<double>::Write(m, p.creation_time);
107 ParamTraits<double>::Write(m, p.last_access_time); 107 ParamTraits<double>::Write(m, p.last_access_time);
108 ParamTraits<double>::Write(m, p.last_modified_time); 108 ParamTraits<double>::Write(m, p.last_modified_time);
109 } 109 }
110 110
111 // static 111 // static
112 bool ParamTraits<PP_FileInfo>::Read(const Message* m, void** iter, 112 bool ParamTraits<PP_FileInfo>::Read(const Message* m, PickleReader* iter,
113 param_type* r) { 113 param_type* r) {
114 int type, system_type; 114 int type, system_type;
115 if (!ParamTraits<int64_t>::Read(m, iter, &r->size) || 115 if (!ParamTraits<int64_t>::Read(m, iter, &r->size) ||
116 !ParamTraits<int>::Read(m, iter, &type) || 116 !ParamTraits<int>::Read(m, iter, &type) ||
117 !ParamTraits<int>::Read(m, iter, &system_type) || 117 !ParamTraits<int>::Read(m, iter, &system_type) ||
118 !ParamTraits<double>::Read(m, iter, &r->creation_time) || 118 !ParamTraits<double>::Read(m, iter, &r->creation_time) ||
119 !ParamTraits<double>::Read(m, iter, &r->last_access_time) || 119 !ParamTraits<double>::Read(m, iter, &r->last_access_time) ||
120 !ParamTraits<double>::Read(m, iter, &r->last_modified_time)) 120 !ParamTraits<double>::Read(m, iter, &r->last_modified_time))
121 return false; 121 return false;
122 if (type != PP_FILETYPE_REGULAR && 122 if (type != PP_FILETYPE_REGULAR &&
(...skipping 18 matching lines...) Expand all
141 141
142 // static 142 // static
143 void ParamTraits<PP_NetAddress_Private>::Write(Message* m, 143 void ParamTraits<PP_NetAddress_Private>::Write(Message* m,
144 const param_type& p) { 144 const param_type& p) {
145 WriteParam(m, p.size); 145 WriteParam(m, p.size);
146 m->WriteBytes(p.data, static_cast<int>(p.size)); 146 m->WriteBytes(p.data, static_cast<int>(p.size));
147 } 147 }
148 148
149 // static 149 // static
150 bool ParamTraits<PP_NetAddress_Private>::Read(const Message* m, 150 bool ParamTraits<PP_NetAddress_Private>::Read(const Message* m,
151 void** iter, 151 PickleReader* iter,
152 param_type* p) { 152 param_type* p) {
153 uint16 size; 153 uint16 size;
154 if (!ReadParam(m, iter, &size)) 154 if (!ReadParam(m, iter, &size))
155 return false; 155 return false;
156 if (size > sizeof(p->data)) 156 if (size > sizeof(p->data))
157 return false; 157 return false;
158 p->size = size; 158 p->size = size;
159 159
160 const char* data; 160 const char* data;
161 if (!m->ReadBytes(iter, &data, size)) 161 if (!m->ReadBytes(iter, &data, size))
(...skipping 12 matching lines...) Expand all
174 174
175 // PP_ObjectProperty ----------------------------------------------------------- 175 // PP_ObjectProperty -----------------------------------------------------------
176 176
177 // static 177 // static
178 void ParamTraits<PP_ObjectProperty>::Write(Message* m, const param_type& p) { 178 void ParamTraits<PP_ObjectProperty>::Write(Message* m, const param_type& p) {
179 // FIXME(brettw); 179 // FIXME(brettw);
180 } 180 }
181 181
182 // static 182 // static
183 bool ParamTraits<PP_ObjectProperty>::Read(const Message* m, 183 bool ParamTraits<PP_ObjectProperty>::Read(const Message* m,
184 void** iter, 184 PickleReader* iter,
185 param_type* r) { 185 param_type* r) {
186 // FIXME(brettw); 186 // FIXME(brettw);
187 return true; 187 return true;
188 } 188 }
189 189
190 // static 190 // static
191 void ParamTraits<PP_ObjectProperty>::Log(const param_type& p, std::string* l) { 191 void ParamTraits<PP_ObjectProperty>::Log(const param_type& p, std::string* l) {
192 } 192 }
193 193
194 // PPBFlash_DrawGlyphs_Params -------------------------------------------------- 194 // PPBFlash_DrawGlyphs_Params --------------------------------------------------
(...skipping 18 matching lines...) Expand all
213 ParamTraits<float>::Write(m, p.transformation[2][1]); 213 ParamTraits<float>::Write(m, p.transformation[2][1]);
214 ParamTraits<float>::Write(m, p.transformation[2][2]); 214 ParamTraits<float>::Write(m, p.transformation[2][2]);
215 ParamTraits<PP_Bool>::Write(m, p.allow_subpixel_aa); 215 ParamTraits<PP_Bool>::Write(m, p.allow_subpixel_aa);
216 ParamTraits<std::vector<uint16_t> >::Write(m, p.glyph_indices); 216 ParamTraits<std::vector<uint16_t> >::Write(m, p.glyph_indices);
217 ParamTraits<std::vector<PP_Point> >::Write(m, p.glyph_advances); 217 ParamTraits<std::vector<PP_Point> >::Write(m, p.glyph_advances);
218 } 218 }
219 219
220 // static 220 // static
221 bool ParamTraits<ppapi::proxy::PPBFlash_DrawGlyphs_Params>::Read( 221 bool ParamTraits<ppapi::proxy::PPBFlash_DrawGlyphs_Params>::Read(
222 const Message* m, 222 const Message* m,
223 void** iter, 223 PickleReader* iter,
224 param_type* r) { 224 param_type* r) {
225 return 225 return
226 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && 226 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) &&
227 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->image_data) && 227 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->image_data) &&
228 ParamTraits<ppapi::proxy::SerializedFontDescription>::Read(m, iter, 228 ParamTraits<ppapi::proxy::SerializedFontDescription>::Read(m, iter,
229 &r->font_desc) && 229 &r->font_desc) &&
230 ParamTraits<uint32_t>::Read(m, iter, &r->color) && 230 ParamTraits<uint32_t>::Read(m, iter, &r->color) &&
231 ParamTraits<PP_Point>::Read(m, iter, &r->position) && 231 ParamTraits<PP_Point>::Read(m, iter, &r->position) &&
232 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && 232 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) &&
233 ParamTraits<float>::Read(m, iter, &r->transformation[0][0]) && 233 ParamTraits<float>::Read(m, iter, &r->transformation[0][0]) &&
(...skipping 23 matching lines...) Expand all
257 void ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Write(Message* m, 257 void ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Write(Message* m,
258 const param_type& p) { 258 const param_type& p) {
259 ParamTraits<ppapi::HostResource>::Write(m, p.resource); 259 ParamTraits<ppapi::HostResource>::Write(m, p.resource);
260 ParamTraits<int>::Write(m, p.file_system_type); 260 ParamTraits<int>::Write(m, p.file_system_type);
261 ParamTraits<std::string>::Write(m, p.path); 261 ParamTraits<std::string>::Write(m, p.path);
262 ParamTraits<std::string>::Write(m, p.name); 262 ParamTraits<std::string>::Write(m, p.name);
263 } 263 }
264 264
265 // static 265 // static
266 bool ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Read(const Message* m, 266 bool ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Read(const Message* m,
267 void** iter, 267 PickleReader* iter,
268 param_type* r) { 268 param_type* r) {
269 return 269 return
270 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) && 270 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) &&
271 ParamTraits<int>::Read(m, iter, &r->file_system_type) && 271 ParamTraits<int>::Read(m, iter, &r->file_system_type) &&
272 ParamTraits<std::string>::Read(m, iter, &r->path) && 272 ParamTraits<std::string>::Read(m, iter, &r->path) &&
273 ParamTraits<std::string>::Read(m, iter, &r->name); 273 ParamTraits<std::string>::Read(m, iter, &r->name);
274 } 274 }
275 275
276 // static 276 // static
277 void ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Log(const param_type& p, 277 void ParamTraits<ppapi::PPB_FileRef_CreateInfo>::Log(const param_type& p,
(...skipping 10 matching lines...) Expand all
288 ParamTraits<ppapi::HostResource>::Write(m, p.resource); 288 ParamTraits<ppapi::HostResource>::Write(m, p.resource);
289 ParamTraits<int64_t>::Write(m, p.bytes_sent); 289 ParamTraits<int64_t>::Write(m, p.bytes_sent);
290 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_sent); 290 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_sent);
291 ParamTraits<int64_t>::Write(m, p.bytes_received); 291 ParamTraits<int64_t>::Write(m, p.bytes_received);
292 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_received); 292 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_received);
293 } 293 }
294 294
295 // static 295 // static
296 bool ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Read( 296 bool ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Read(
297 const Message* m, 297 const Message* m,
298 void** iter, 298 PickleReader* iter,
299 param_type* r) { 299 param_type* r) {
300 return 300 return
301 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && 301 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) &&
302 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) && 302 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) &&
303 ParamTraits<int64_t>::Read(m, iter, &r->bytes_sent) && 303 ParamTraits<int64_t>::Read(m, iter, &r->bytes_sent) &&
304 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_sent) && 304 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_sent) &&
305 ParamTraits<int64_t>::Read(m, iter, &r->bytes_received) && 305 ParamTraits<int64_t>::Read(m, iter, &r->bytes_received) &&
306 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_received); 306 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_received);
307 } 307 }
308 308
309 // static 309 // static
310 void ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Log( 310 void ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Log(
311 const param_type& p, 311 const param_type& p,
312 std::string* l) { 312 std::string* l) {
313 } 313 }
314 314
315 // SerializedDirEntry ---------------------------------------------------------- 315 // SerializedDirEntry ----------------------------------------------------------
316 316
317 // static 317 // static
318 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Write(Message* m, 318 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Write(Message* m,
319 const param_type& p) { 319 const param_type& p) {
320 ParamTraits<std::string>::Write(m, p.name); 320 ParamTraits<std::string>::Write(m, p.name);
321 ParamTraits<bool>::Write(m, p.is_dir); 321 ParamTraits<bool>::Write(m, p.is_dir);
322 } 322 }
323 323
324 // static 324 // static
325 bool ParamTraits<ppapi::proxy::SerializedDirEntry>::Read(const Message* m, 325 bool ParamTraits<ppapi::proxy::SerializedDirEntry>::Read(const Message* m,
326 void** iter, 326 PickleReader* iter,
327 param_type* r) { 327 param_type* r) {
328 return ParamTraits<std::string>::Read(m, iter, &r->name) && 328 return ParamTraits<std::string>::Read(m, iter, &r->name) &&
329 ParamTraits<bool>::Read(m, iter, &r->is_dir); 329 ParamTraits<bool>::Read(m, iter, &r->is_dir);
330 } 330 }
331 331
332 // static 332 // static
333 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Log(const param_type& p, 333 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Log(const param_type& p,
334 std::string* l) { 334 std::string* l) {
335 } 335 }
336 336
337 // ppapi::proxy::SerializedFontDescription ------------------------------------- 337 // ppapi::proxy::SerializedFontDescription -------------------------------------
338 338
339 // static 339 // static
340 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Write( 340 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Write(
341 Message* m, 341 Message* m,
342 const param_type& p) { 342 const param_type& p) {
343 ParamTraits<ppapi::proxy::SerializedVar>::Write(m, p.face); 343 ParamTraits<ppapi::proxy::SerializedVar>::Write(m, p.face);
344 ParamTraits<int32_t>::Write(m, p.family); 344 ParamTraits<int32_t>::Write(m, p.family);
345 ParamTraits<uint32_t>::Write(m, p.size); 345 ParamTraits<uint32_t>::Write(m, p.size);
346 ParamTraits<int32_t>::Write(m, p.weight); 346 ParamTraits<int32_t>::Write(m, p.weight);
347 ParamTraits<PP_Bool>::Write(m, p.italic); 347 ParamTraits<PP_Bool>::Write(m, p.italic);
348 ParamTraits<PP_Bool>::Write(m, p.small_caps); 348 ParamTraits<PP_Bool>::Write(m, p.small_caps);
349 ParamTraits<int32_t>::Write(m, p.letter_spacing); 349 ParamTraits<int32_t>::Write(m, p.letter_spacing);
350 ParamTraits<int32_t>::Write(m, p.word_spacing); 350 ParamTraits<int32_t>::Write(m, p.word_spacing);
351 } 351 }
352 352
353 // static 353 // static
354 bool ParamTraits<ppapi::proxy::SerializedFontDescription>::Read( 354 bool ParamTraits<ppapi::proxy::SerializedFontDescription>::Read(
355 const Message* m, 355 const Message* m,
356 void** iter, 356 PickleReader* iter,
357 param_type* r) { 357 param_type* r) {
358 return 358 return
359 ParamTraits<ppapi::proxy::SerializedVar>::Read(m, iter, &r->face) && 359 ParamTraits<ppapi::proxy::SerializedVar>::Read(m, iter, &r->face) &&
360 ParamTraits<int32_t>::Read(m, iter, &r->family) && 360 ParamTraits<int32_t>::Read(m, iter, &r->family) &&
361 ParamTraits<uint32_t>::Read(m, iter, &r->size) && 361 ParamTraits<uint32_t>::Read(m, iter, &r->size) &&
362 ParamTraits<int32_t>::Read(m, iter, &r->weight) && 362 ParamTraits<int32_t>::Read(m, iter, &r->weight) &&
363 ParamTraits<PP_Bool>::Read(m, iter, &r->italic) && 363 ParamTraits<PP_Bool>::Read(m, iter, &r->italic) &&
364 ParamTraits<PP_Bool>::Read(m, iter, &r->small_caps) && 364 ParamTraits<PP_Bool>::Read(m, iter, &r->small_caps) &&
365 ParamTraits<int32_t>::Read(m, iter, &r->letter_spacing) && 365 ParamTraits<int32_t>::Read(m, iter, &r->letter_spacing) &&
366 ParamTraits<int32_t>::Read(m, iter, &r->word_spacing); 366 ParamTraits<int32_t>::Read(m, iter, &r->word_spacing);
367 } 367 }
368 368
369 // static 369 // static
370 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Log( 370 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Log(
371 const param_type& p, 371 const param_type& p,
372 std::string* l) { 372 std::string* l) {
373 } 373 }
374 374
375 // HostResource ---------------------------------------------------------------- 375 // HostResource ----------------------------------------------------------------
376 376
377 // static 377 // static
378 void ParamTraits<ppapi::HostResource>::Write(Message* m, 378 void ParamTraits<ppapi::HostResource>::Write(Message* m,
379 const param_type& p) { 379 const param_type& p) {
380 ParamTraits<PP_Instance>::Write(m, p.instance()); 380 ParamTraits<PP_Instance>::Write(m, p.instance());
381 ParamTraits<PP_Resource>::Write(m, p.host_resource()); 381 ParamTraits<PP_Resource>::Write(m, p.host_resource());
382 } 382 }
383 383
384 // static 384 // static
385 bool ParamTraits<ppapi::HostResource>::Read(const Message* m, 385 bool ParamTraits<ppapi::HostResource>::Read(const Message* m,
386 void** iter, 386 PickleReader* iter,
387 param_type* r) { 387 param_type* r) {
388 PP_Instance instance; 388 PP_Instance instance;
389 PP_Resource resource; 389 PP_Resource resource;
390 if (!ParamTraits<PP_Instance>::Read(m, iter, &instance) || 390 if (!ParamTraits<PP_Instance>::Read(m, iter, &instance) ||
391 !ParamTraits<PP_Resource>::Read(m, iter, &resource)) 391 !ParamTraits<PP_Resource>::Read(m, iter, &resource))
392 return false; 392 return false;
393 r->SetHostResource(instance, resource); 393 r->SetHostResource(instance, resource);
394 return true; 394 return true;
395 } 395 }
396 396
397 // static 397 // static
398 void ParamTraits<ppapi::HostResource>::Log(const param_type& p, 398 void ParamTraits<ppapi::HostResource>::Log(const param_type& p,
399 std::string* l) { 399 std::string* l) {
400 } 400 }
401 401
402 // SerializedVar --------------------------------------------------------------- 402 // SerializedVar ---------------------------------------------------------------
403 403
404 // static 404 // static
405 void ParamTraits<ppapi::proxy::SerializedVar>::Write(Message* m, 405 void ParamTraits<ppapi::proxy::SerializedVar>::Write(Message* m,
406 const param_type& p) { 406 const param_type& p) {
407 p.WriteToMessage(m); 407 p.WriteToMessage(m);
408 } 408 }
409 409
410 // static 410 // static
411 bool ParamTraits<ppapi::proxy::SerializedVar>::Read(const Message* m, 411 bool ParamTraits<ppapi::proxy::SerializedVar>::Read(const Message* m,
412 void** iter, 412 PickleReader* iter,
413 param_type* r) { 413 param_type* r) {
414 return r->ReadFromMessage(m, iter); 414 return r->ReadFromMessage(m, iter);
415 } 415 }
416 416
417 // static 417 // static
418 void ParamTraits<ppapi::proxy::SerializedVar>::Log(const param_type& p, 418 void ParamTraits<ppapi::proxy::SerializedVar>::Log(const param_type& p,
419 std::string* l) { 419 std::string* l) {
420 } 420 }
421 421
422 // std::vector<SerializedVar> -------------------------------------------------- 422 // std::vector<SerializedVar> --------------------------------------------------
423 423
424 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Write( 424 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Write(
425 Message* m, 425 Message* m,
426 const param_type& p) { 426 const param_type& p) {
427 WriteVectorWithoutCopy(m, p); 427 WriteVectorWithoutCopy(m, p);
428 } 428 }
429 429
430 // static 430 // static
431 bool ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Read( 431 bool ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Read(
432 const Message* m, 432 const Message* m,
433 void** iter, 433 PickleReader* iter,
434 param_type* r) { 434 param_type* r) {
435 return ReadVectorWithoutCopy(m, iter, r); 435 return ReadVectorWithoutCopy(m, iter, r);
436 } 436 }
437 437
438 // static 438 // static
439 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Log( 439 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Log(
440 const param_type& p, 440 const param_type& p,
441 std::string* l) { 441 std::string* l) {
442 } 442 }
443 443
444 // std::vector<PPB_FileRef_CreateInfo> ----------------------------------------- 444 // std::vector<PPB_FileRef_CreateInfo> -----------------------------------------
445 445
446 void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Write( 446 void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Write(
447 Message* m, 447 Message* m,
448 const param_type& p) { 448 const param_type& p) {
449 WriteVectorWithoutCopy(m, p); 449 WriteVectorWithoutCopy(m, p);
450 } 450 }
451 451
452 // static 452 // static
453 bool ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Read( 453 bool ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Read(
454 const Message* m, 454 const Message* m,
455 void** iter, 455 PickleReader* iter,
456 param_type* r) { 456 param_type* r) {
457 return ReadVectorWithoutCopy(m, iter, r); 457 return ReadVectorWithoutCopy(m, iter, r);
458 } 458 }
459 459
460 // static 460 // static
461 void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Log( 461 void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Log(
462 const param_type& p, 462 const param_type& p,
463 std::string* l) { 463 std::string* l) {
464 } 464 }
465 465
466 // SerializedFlashMenu --------------------------------------------------------- 466 // SerializedFlashMenu ---------------------------------------------------------
467 467
468 // static 468 // static
469 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Write( 469 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Write(
470 Message* m, 470 Message* m,
471 const param_type& p) { 471 const param_type& p) {
472 p.WriteToMessage(m); 472 p.WriteToMessage(m);
473 } 473 }
474 474
475 // static 475 // static
476 bool ParamTraits<ppapi::proxy::SerializedFlashMenu>::Read(const Message* m, 476 bool ParamTraits<ppapi::proxy::SerializedFlashMenu>::Read(const Message* m,
477 void** iter, 477 PickleReader* iter,
478 param_type* r) { 478 param_type* r) {
479 return r->ReadFromMessage(m, iter); 479 return r->ReadFromMessage(m, iter);
480 } 480 }
481 481
482 // static 482 // static
483 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Log(const param_type& p, 483 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Log(const param_type& p,
484 std::string* l) { 484 std::string* l) {
485 } 485 }
486 486
487 } // namespace IPC 487 } // namespace IPC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698