| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2008 The Native Client Authors. All rights reserved. | 2 * Copyright 2008 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can | 3 * Use of this source code is governed by a BSD-style license that can |
| 4 * be found in the LICENSE file. | 4 * be found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "native_client/src/include/checked_cast.h" | 10 #include "native_client/src/include/checked_cast.h" |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 } | 125 } |
| 126 | 126 |
| 127 MethodInfo::~MethodInfo() { | 127 MethodInfo::~MethodInfo() { |
| 128 free(reinterpret_cast<void*>(name_)); | 128 free(reinterpret_cast<void*>(name_)); |
| 129 free(reinterpret_cast<void*>(ins_)); | 129 free(reinterpret_cast<void*>(ins_)); |
| 130 free(reinterpret_cast<void*>(outs_)); | 130 free(reinterpret_cast<void*>(outs_)); |
| 131 } | 131 } |
| 132 | 132 |
| 133 bool InitSrpcArgArray(NaClSrpcArg* arr, int size) { | 133 bool InitSrpcArgArray(NaClSrpcArg* arr, int size) { |
| 134 arr->tag = NACL_SRPC_ARG_TYPE_VARIANT_ARRAY; | 134 arr->tag = NACL_SRPC_ARG_TYPE_VARIANT_ARRAY; |
| 135 arr->u.vaval.varr = reinterpret_cast<NaClSrpcArg*>( | 135 arr->arrays.varr = reinterpret_cast<NaClSrpcArg*>( |
| 136 calloc(size, sizeof(*(arr->u.vaval.varr)))); | 136 calloc(size, sizeof(*(arr->arrays.varr)))); |
| 137 if (NULL == arr->u.vaval.varr) { | 137 if (NULL == arr->arrays.varr) { |
| 138 arr->u.vaval.count = 0; | 138 arr->u.count = 0; |
| 139 return false; | 139 return false; |
| 140 } | 140 } |
| 141 arr->u.vaval.count = size; | 141 arr->u.count = size; |
| 142 return true; | 142 return true; |
| 143 } | 143 } |
| 144 | 144 |
| 145 void FreeSrpcArg(NaClSrpcArg* arg) { | 145 void FreeSrpcArg(NaClSrpcArg* arg) { |
| 146 switch (arg->tag) { | 146 switch (arg->tag) { |
| 147 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY: | 147 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY: |
| 148 free(arg->u.caval.carr); | 148 free(arg->arrays.carr); |
| 149 break; | 149 break; |
| 150 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY: | 150 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY: |
| 151 free(arg->u.daval.darr); | 151 free(arg->arrays.darr); |
| 152 break; | 152 break; |
| 153 case NACL_SRPC_ARG_TYPE_HANDLE: | 153 case NACL_SRPC_ARG_TYPE_HANDLE: |
| 154 break; | 154 break; |
| 155 case NACL_SRPC_ARG_TYPE_INT_ARRAY: | 155 case NACL_SRPC_ARG_TYPE_INT_ARRAY: |
| 156 free(arg->u.iaval.iarr); | 156 free(arg->arrays.iarr); |
| 157 break; | 157 break; |
| 158 case NACL_SRPC_ARG_TYPE_LONG_ARRAY: | 158 case NACL_SRPC_ARG_TYPE_LONG_ARRAY: |
| 159 free(arg->u.laval.larr); | 159 free(arg->arrays.larr); |
| 160 break; | 160 break; |
| 161 case NACL_SRPC_ARG_TYPE_STRING: | 161 case NACL_SRPC_ARG_TYPE_STRING: |
| 162 // All strings that are passed in SrpcArg must be allocated using | 162 // All strings that are passed in SrpcArg must be allocated using |
| 163 // malloc! We cannot use browser's allocation API | 163 // malloc! We cannot use browser's allocation API |
| 164 // since some of SRPC arguments is handled outside of the plugin code. | 164 // since some of SRPC arguments is handled outside of the plugin code. |
| 165 free(arg->u.sval.str); | 165 free(arg->arrays.str); |
| 166 break; | 166 break; |
| 167 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY: | 167 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY: |
| 168 if (arg->u.vaval.varr) { | 168 if (arg->arrays.varr) { |
| 169 for (uint32_t i = 0; i < arg->u.vaval.count; i++) { | 169 for (uint32_t i = 0; i < arg->u.count; i++) { |
| 170 FreeSrpcArg(&arg->u.vaval.varr[i]); | 170 FreeSrpcArg(&arg->arrays.varr[i]); |
| 171 } | 171 } |
| 172 } | 172 } |
| 173 break; | 173 break; |
| 174 case NACL_SRPC_ARG_TYPE_OBJECT: | 174 case NACL_SRPC_ARG_TYPE_OBJECT: |
| 175 // This is a pointer to a scriptable object and should be released | 175 // This is a pointer to a scriptable object and should be released |
| 176 // by the browser | 176 // by the browser |
| 177 break; | 177 break; |
| 178 case NACL_SRPC_ARG_TYPE_BOOL: | 178 case NACL_SRPC_ARG_TYPE_BOOL: |
| 179 case NACL_SRPC_ARG_TYPE_DOUBLE: | 179 case NACL_SRPC_ARG_TYPE_DOUBLE: |
| 180 case NACL_SRPC_ARG_TYPE_INT: | 180 case NACL_SRPC_ARG_TYPE_INT: |
| (...skipping 19 matching lines...) Expand all Loading... |
| 200 void MethodMap::AddMethod(uintptr_t method_id, MethodInfo *info) { | 200 void MethodMap::AddMethod(uintptr_t method_id, MethodInfo *info) { |
| 201 if (method_map_.find(method_id) != method_map_.end()) { | 201 if (method_map_.find(method_id) != method_map_.end()) { |
| 202 // the method already exists | 202 // the method already exists |
| 203 abort(); | 203 abort(); |
| 204 } | 204 } |
| 205 method_map_[method_id] = info; | 205 method_map_[method_id] = info; |
| 206 method_map_keys_.push_back(method_id); | 206 method_map_keys_.push_back(method_id); |
| 207 } | 207 } |
| 208 | 208 |
| 209 } // namespace plugin | 209 } // namespace plugin |
| OLD | NEW |