| OLD | NEW | 
|---|
| 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/serialized_var.h" | 5 #include "ppapi/proxy/serialized_var.h" | 
| 6 | 6 | 
| 7 #include "base/logging.h" | 7 #include "base/logging.h" | 
| 8 #include "ipc/ipc_message_utils.h" | 8 #include "ipc/ipc_message_utils.h" | 
| 9 #include "ppapi/proxy/dispatcher.h" | 9 #include "ppapi/proxy/dispatcher.h" | 
| 10 #include "ppapi/proxy/interface_proxy.h" | 10 #include "ppapi/proxy/interface_proxy.h" | 
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 140       // TODO(brettw) in the case of an invalid string ID, it would be nice | 140       // TODO(brettw) in the case of an invalid string ID, it would be nice | 
| 141       // to send something to the other side such that a 0 ID would be | 141       // to send something to the other side such that a 0 ID would be | 
| 142       // generated there. Then the function implementing the interface can | 142       // generated there. Then the function implementing the interface can | 
| 143       // handle the invalid string as if it was in process rather than seeing | 143       // handle the invalid string as if it was in process rather than seeing | 
| 144       // what looks like a valid empty string. | 144       // what looks like a valid empty string. | 
| 145       m->WriteString(string_value_); | 145       m->WriteString(string_value_); | 
| 146       break; | 146       break; | 
| 147     case PP_VARTYPE_OBJECT: | 147     case PP_VARTYPE_OBJECT: | 
| 148       m->WriteInt64(var_.value.as_id); | 148       m->WriteInt64(var_.value.as_id); | 
| 149       break; | 149       break; | 
|  | 150     case PP_VARTYPE_ARRAY: | 
|  | 151     case PP_VARTYPE_DICTIONARY: | 
|  | 152       // TODO(brettw) when these are supported, implement this. | 
|  | 153       NOTIMPLEMENTED(); | 
|  | 154       break; | 
| 150   } | 155   } | 
| 151 } | 156 } | 
| 152 | 157 | 
| 153 bool SerializedVar::Inner::ReadFromMessage(const IPC::Message* m, void** iter) { | 158 bool SerializedVar::Inner::ReadFromMessage(const IPC::Message* m, void** iter) { | 
| 154 #ifndef NDEBUG | 159 #ifndef NDEBUG | 
| 155   // We should only deserialize something once or will end up with leaked | 160   // We should only deserialize something once or will end up with leaked | 
| 156   // references. | 161   // references. | 
| 157   // | 162   // | 
| 158   // One place this has happened in the past is using | 163   // One place this has happened in the past is using | 
| 159   // std::vector<SerializedVar>.resize(). If you're doing this manually instead | 164   // std::vector<SerializedVar>.resize(). If you're doing this manually instead | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 189     case PP_VARTYPE_DOUBLE: | 194     case PP_VARTYPE_DOUBLE: | 
| 190       success = IPC::ParamTraits<double>::Read(m, iter, &var_.value.as_double); | 195       success = IPC::ParamTraits<double>::Read(m, iter, &var_.value.as_double); | 
| 191       break; | 196       break; | 
| 192     case PP_VARTYPE_STRING: | 197     case PP_VARTYPE_STRING: | 
| 193       success = m->ReadString(iter, &string_value_); | 198       success = m->ReadString(iter, &string_value_); | 
| 194       var_.value.as_id = 0; | 199       var_.value.as_id = 0; | 
| 195       break; | 200       break; | 
| 196     case PP_VARTYPE_OBJECT: | 201     case PP_VARTYPE_OBJECT: | 
| 197       success = m->ReadInt64(iter, &var_.value.as_id); | 202       success = m->ReadInt64(iter, &var_.value.as_id); | 
| 198       break; | 203       break; | 
|  | 204     case PP_VARTYPE_ARRAY: | 
|  | 205     case PP_VARTYPE_DICTIONARY: | 
|  | 206       // TODO(brettw) when these types are supported, implement this. | 
|  | 207       NOTIMPLEMENTED(); | 
|  | 208       break; | 
| 199     default: | 209     default: | 
| 200       // Leave success as false. | 210       // Leave success as false. | 
| 201       break; | 211       break; | 
| 202   } | 212   } | 
| 203 | 213 | 
| 204   // All success cases get here. We avoid writing the type above so that the | 214   // All success cases get here. We avoid writing the type above so that the | 
| 205   // output param is untouched (defaults to VARTYPE_UNDEFINED) even in the | 215   // output param is untouched (defaults to VARTYPE_UNDEFINED) even in the | 
| 206   // failure case. | 216   // failure case. | 
| 207   if (success) | 217   if (success) | 
| 208     var_.type = static_cast<PP_VarType>(type); | 218     var_.type = static_cast<PP_VarType>(type); | 
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 517   *inner_->GetStringPtr() = str; | 527   *inner_->GetStringPtr() = str; | 
| 518 } | 528 } | 
| 519 | 529 | 
| 520 SerializedVarTestReader::SerializedVarTestReader(const SerializedVar& var) | 530 SerializedVarTestReader::SerializedVarTestReader(const SerializedVar& var) | 
| 521     : SerializedVar(var) { | 531     : SerializedVar(var) { | 
| 522 } | 532 } | 
| 523 | 533 | 
| 524 }  // namespace proxy | 534 }  // namespace proxy | 
| 525 }  // namespace pp | 535 }  // namespace pp | 
| 526 | 536 | 
| OLD | NEW | 
|---|