| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "bin/file.h" | 5 #include "bin/file.h" |
| 6 | 6 |
| 7 #include "bin/builtin.h" | 7 #include "bin/builtin.h" |
| 8 #include "bin/dartutils.h" | 8 #include "bin/dartutils.h" |
| 9 #include "bin/io_buffer.h" | 9 #include "bin/io_buffer.h" |
| 10 #include "bin/thread.h" | 10 #include "bin/thread.h" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 return File::kWriteTruncate; | 70 return File::kWriteTruncate; |
| 71 } | 71 } |
| 72 if (mode == File::kDartAppend) { | 72 if (mode == File::kDartAppend) { |
| 73 return File::kWrite; | 73 return File::kWrite; |
| 74 } | 74 } |
| 75 return File::kRead; | 75 return File::kRead; |
| 76 } | 76 } |
| 77 | 77 |
| 78 | 78 |
| 79 void FUNCTION_NAME(File_Open)(Dart_NativeArguments args) { | 79 void FUNCTION_NAME(File_Open)(Dart_NativeArguments args) { |
| 80 Dart_EnterScope(); | |
| 81 const char* filename = | 80 const char* filename = |
| 82 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 81 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 83 int64_t mode = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 1)); | 82 int64_t mode = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 1)); |
| 84 File::DartFileOpenMode dart_file_mode = | 83 File::DartFileOpenMode dart_file_mode = |
| 85 static_cast<File::DartFileOpenMode>(mode); | 84 static_cast<File::DartFileOpenMode>(mode); |
| 86 File::FileOpenMode file_mode = File::DartModeToFileMode(dart_file_mode); | 85 File::FileOpenMode file_mode = File::DartModeToFileMode(dart_file_mode); |
| 87 // Check that the file exists before opening it only for | 86 // Check that the file exists before opening it only for |
| 88 // reading. This is to prevent the opening of directories as | 87 // reading. This is to prevent the opening of directories as |
| 89 // files. Directories can be opened for reading using the posix | 88 // files. Directories can be opened for reading using the posix |
| 90 // 'open' call. | 89 // 'open' call. |
| 91 File* file = NULL; | 90 File* file = NULL; |
| 92 file = File::Open(filename, file_mode); | 91 file = File::Open(filename, file_mode); |
| 93 if (file != NULL) { | 92 if (file != NULL) { |
| 94 Dart_SetReturnValue(args, | 93 Dart_SetReturnValue(args, |
| 95 Dart_NewInteger(reinterpret_cast<intptr_t>(file))); | 94 Dart_NewInteger(reinterpret_cast<intptr_t>(file))); |
| 96 } else { | 95 } else { |
| 97 Dart_Handle err = DartUtils::NewDartOSError(); | 96 Dart_Handle err = DartUtils::NewDartOSError(); |
| 98 if (Dart_IsError(err)) Dart_PropagateError(err); | 97 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 99 Dart_SetReturnValue(args, err); | 98 Dart_SetReturnValue(args, err); |
| 100 } | 99 } |
| 101 Dart_ExitScope(); | |
| 102 } | 100 } |
| 103 | 101 |
| 104 | 102 |
| 105 void FUNCTION_NAME(File_Exists)(Dart_NativeArguments args) { | 103 void FUNCTION_NAME(File_Exists)(Dart_NativeArguments args) { |
| 106 Dart_EnterScope(); | |
| 107 const char* filename = | 104 const char* filename = |
| 108 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 105 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 109 bool exists = File::Exists(filename); | 106 bool exists = File::Exists(filename); |
| 110 Dart_SetReturnValue(args, Dart_NewBoolean(exists)); | 107 Dart_SetReturnValue(args, Dart_NewBoolean(exists)); |
| 111 Dart_ExitScope(); | |
| 112 } | 108 } |
| 113 | 109 |
| 114 | 110 |
| 115 void FUNCTION_NAME(File_Close)(Dart_NativeArguments args) { | 111 void FUNCTION_NAME(File_Close)(Dart_NativeArguments args) { |
| 116 Dart_EnterScope(); | |
| 117 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 112 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 118 ASSERT(file != NULL); | 113 ASSERT(file != NULL); |
| 119 delete file; | 114 delete file; |
| 120 Dart_SetReturnValue(args, Dart_NewInteger(0)); | 115 Dart_SetReturnValue(args, Dart_NewInteger(0)); |
| 121 Dart_ExitScope(); | |
| 122 } | 116 } |
| 123 | 117 |
| 124 | 118 |
| 125 void FUNCTION_NAME(File_ReadByte)(Dart_NativeArguments args) { | 119 void FUNCTION_NAME(File_ReadByte)(Dart_NativeArguments args) { |
| 126 Dart_EnterScope(); | |
| 127 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 120 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 128 ASSERT(file != NULL); | 121 ASSERT(file != NULL); |
| 129 uint8_t buffer; | 122 uint8_t buffer; |
| 130 int64_t bytes_read = file->Read(reinterpret_cast<void*>(&buffer), 1); | 123 int64_t bytes_read = file->Read(reinterpret_cast<void*>(&buffer), 1); |
| 131 if (bytes_read == 1) { | 124 if (bytes_read == 1) { |
| 132 Dart_SetReturnValue(args, Dart_NewInteger(buffer)); | 125 Dart_SetReturnValue(args, Dart_NewInteger(buffer)); |
| 133 } else if (bytes_read == 0) { | 126 } else if (bytes_read == 0) { |
| 134 Dart_SetReturnValue(args, Dart_NewInteger(-1)); | 127 Dart_SetReturnValue(args, Dart_NewInteger(-1)); |
| 135 } else { | 128 } else { |
| 136 Dart_Handle err = DartUtils::NewDartOSError(); | 129 Dart_Handle err = DartUtils::NewDartOSError(); |
| 137 if (Dart_IsError(err)) Dart_PropagateError(err); | 130 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 138 Dart_SetReturnValue(args, err); | 131 Dart_SetReturnValue(args, err); |
| 139 } | 132 } |
| 140 Dart_ExitScope(); | |
| 141 } | 133 } |
| 142 | 134 |
| 143 | 135 |
| 144 void FUNCTION_NAME(File_WriteByte)(Dart_NativeArguments args) { | 136 void FUNCTION_NAME(File_WriteByte)(Dart_NativeArguments args) { |
| 145 Dart_EnterScope(); | |
| 146 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 137 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 147 ASSERT(file != NULL); | 138 ASSERT(file != NULL); |
| 148 int64_t byte = 0; | 139 int64_t byte = 0; |
| 149 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &byte)) { | 140 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &byte)) { |
| 150 uint8_t buffer = static_cast<uint8_t>(byte & 0xff); | 141 uint8_t buffer = static_cast<uint8_t>(byte & 0xff); |
| 151 int64_t bytes_written = file->Write(reinterpret_cast<void*>(&buffer), 1); | 142 int64_t bytes_written = file->Write(reinterpret_cast<void*>(&buffer), 1); |
| 152 if (bytes_written >= 0) { | 143 if (bytes_written >= 0) { |
| 153 Dart_SetReturnValue(args, Dart_NewInteger(bytes_written)); | 144 Dart_SetReturnValue(args, Dart_NewInteger(bytes_written)); |
| 154 } else { | 145 } else { |
| 155 Dart_Handle err = DartUtils::NewDartOSError(); | 146 Dart_Handle err = DartUtils::NewDartOSError(); |
| 156 if (Dart_IsError(err)) Dart_PropagateError(err); | 147 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 157 Dart_SetReturnValue(args, err); | 148 Dart_SetReturnValue(args, err); |
| 158 } | 149 } |
| 159 } else { | 150 } else { |
| 160 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 151 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 161 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 152 Dart_Handle err = DartUtils::NewDartOSError(&os_error); |
| 162 if (Dart_IsError(err)) Dart_PropagateError(err); | 153 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 163 Dart_SetReturnValue(args, err); | 154 Dart_SetReturnValue(args, err); |
| 164 } | 155 } |
| 165 Dart_ExitScope(); | |
| 166 } | 156 } |
| 167 | 157 |
| 168 | 158 |
| 169 void FUNCTION_NAME(File_Read)(Dart_NativeArguments args) { | 159 void FUNCTION_NAME(File_Read)(Dart_NativeArguments args) { |
| 170 Dart_EnterScope(); | |
| 171 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 160 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 172 ASSERT(file != NULL); | 161 ASSERT(file != NULL); |
| 173 Dart_Handle length_object = Dart_GetNativeArgument(args, 1); | 162 Dart_Handle length_object = Dart_GetNativeArgument(args, 1); |
| 174 int64_t length = 0; | 163 int64_t length = 0; |
| 175 if (DartUtils::GetInt64Value(length_object, &length)) { | 164 if (DartUtils::GetInt64Value(length_object, &length)) { |
| 176 uint8_t* buffer = NULL; | 165 uint8_t* buffer = NULL; |
| 177 Dart_Handle external_array = IOBuffer::Allocate(length, &buffer); | 166 Dart_Handle external_array = IOBuffer::Allocate(length, &buffer); |
| 178 int64_t bytes_read = file->Read(reinterpret_cast<void*>(buffer), length); | 167 int64_t bytes_read = file->Read(reinterpret_cast<void*>(buffer), length); |
| 179 if (bytes_read < 0) { | 168 if (bytes_read < 0) { |
| 180 Dart_Handle err = DartUtils::NewDartOSError(); | 169 Dart_Handle err = DartUtils::NewDartOSError(); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 201 } else { | 190 } else { |
| 202 Dart_SetReturnValue(args, external_array); | 191 Dart_SetReturnValue(args, external_array); |
| 203 } | 192 } |
| 204 } | 193 } |
| 205 } else { | 194 } else { |
| 206 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 195 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 207 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 196 Dart_Handle err = DartUtils::NewDartOSError(&os_error); |
| 208 if (Dart_IsError(err)) Dart_PropagateError(err); | 197 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 209 Dart_SetReturnValue(args, err); | 198 Dart_SetReturnValue(args, err); |
| 210 } | 199 } |
| 211 Dart_ExitScope(); | |
| 212 } | 200 } |
| 213 | 201 |
| 214 | 202 |
| 215 void FUNCTION_NAME(File_ReadInto)(Dart_NativeArguments args) { | 203 void FUNCTION_NAME(File_ReadInto)(Dart_NativeArguments args) { |
| 216 Dart_EnterScope(); | |
| 217 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 204 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 218 ASSERT(file != NULL); | 205 ASSERT(file != NULL); |
| 219 Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); | 206 Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); |
| 220 ASSERT(Dart_IsList(buffer_obj)); | 207 ASSERT(Dart_IsList(buffer_obj)); |
| 221 // start and end arguments are checked in Dart code to be | 208 // start and end arguments are checked in Dart code to be |
| 222 // integers and have the property that end <= | 209 // integers and have the property that end <= |
| 223 // list.length. Therefore, it is safe to extract their value as | 210 // list.length. Therefore, it is safe to extract their value as |
| 224 // intptr_t. | 211 // intptr_t. |
| 225 intptr_t start = | 212 intptr_t start = |
| 226 DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 2)); | 213 DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 2)); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 239 delete[] buffer; | 226 delete[] buffer; |
| 240 Dart_PropagateError(result); | 227 Dart_PropagateError(result); |
| 241 } | 228 } |
| 242 Dart_SetReturnValue(args, Dart_NewInteger(bytes_read)); | 229 Dart_SetReturnValue(args, Dart_NewInteger(bytes_read)); |
| 243 } else { | 230 } else { |
| 244 Dart_Handle err = DartUtils::NewDartOSError(); | 231 Dart_Handle err = DartUtils::NewDartOSError(); |
| 245 if (Dart_IsError(err)) Dart_PropagateError(err); | 232 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 246 Dart_SetReturnValue(args, err); | 233 Dart_SetReturnValue(args, err); |
| 247 } | 234 } |
| 248 delete[] buffer; | 235 delete[] buffer; |
| 249 Dart_ExitScope(); | |
| 250 } | 236 } |
| 251 | 237 |
| 252 | 238 |
| 253 void FUNCTION_NAME(File_WriteFrom)(Dart_NativeArguments args) { | 239 void FUNCTION_NAME(File_WriteFrom)(Dart_NativeArguments args) { |
| 254 Dart_EnterScope(); | |
| 255 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 240 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 256 ASSERT(file != NULL); | 241 ASSERT(file != NULL); |
| 257 | 242 |
| 258 Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); | 243 Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); |
| 259 | 244 |
| 260 // Offset and length arguments are checked in Dart code to be | 245 // Offset and length arguments are checked in Dart code to be |
| 261 // integers and have the property that (offset + length) <= | 246 // integers and have the property that (offset + length) <= |
| 262 // list.length. Therefore, it is safe to extract their value as | 247 // list.length. Therefore, it is safe to extract their value as |
| 263 // intptr_t. | 248 // intptr_t. |
| 264 intptr_t start = | 249 intptr_t start = |
| (...skipping 20 matching lines...) Expand all Loading... |
| 285 | 270 |
| 286 // Release the direct pointer acquired above. | 271 // Release the direct pointer acquired above. |
| 287 result = Dart_TypedDataReleaseData(buffer_obj); | 272 result = Dart_TypedDataReleaseData(buffer_obj); |
| 288 if (Dart_IsError(result)) Dart_PropagateError(result); | 273 if (Dart_IsError(result)) Dart_PropagateError(result); |
| 289 | 274 |
| 290 if (bytes_written != length) { | 275 if (bytes_written != length) { |
| 291 Dart_Handle err = DartUtils::NewDartOSError(); | 276 Dart_Handle err = DartUtils::NewDartOSError(); |
| 292 if (Dart_IsError(err)) Dart_PropagateError(err); | 277 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 293 Dart_SetReturnValue(args, err); | 278 Dart_SetReturnValue(args, err); |
| 294 } | 279 } |
| 295 Dart_ExitScope(); | |
| 296 } | 280 } |
| 297 | 281 |
| 298 | 282 |
| 299 void FUNCTION_NAME(File_Position)(Dart_NativeArguments args) { | 283 void FUNCTION_NAME(File_Position)(Dart_NativeArguments args) { |
| 300 Dart_EnterScope(); | |
| 301 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 284 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 302 ASSERT(file != NULL); | 285 ASSERT(file != NULL); |
| 303 intptr_t return_value = file->Position(); | 286 intptr_t return_value = file->Position(); |
| 304 if (return_value >= 0) { | 287 if (return_value >= 0) { |
| 305 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); | 288 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); |
| 306 } else { | 289 } else { |
| 307 Dart_Handle err = DartUtils::NewDartOSError(); | 290 Dart_Handle err = DartUtils::NewDartOSError(); |
| 308 if (Dart_IsError(err)) Dart_PropagateError(err); | 291 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 309 Dart_SetReturnValue(args, err); | 292 Dart_SetReturnValue(args, err); |
| 310 } | 293 } |
| 311 Dart_ExitScope(); | |
| 312 } | 294 } |
| 313 | 295 |
| 314 | 296 |
| 315 void FUNCTION_NAME(File_SetPosition)(Dart_NativeArguments args) { | 297 void FUNCTION_NAME(File_SetPosition)(Dart_NativeArguments args) { |
| 316 Dart_EnterScope(); | |
| 317 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 298 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 318 ASSERT(file != NULL); | 299 ASSERT(file != NULL); |
| 319 int64_t position = 0; | 300 int64_t position = 0; |
| 320 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &position)) { | 301 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &position)) { |
| 321 if (file->SetPosition(position)) { | 302 if (file->SetPosition(position)) { |
| 322 Dart_SetReturnValue(args, Dart_True()); | 303 Dart_SetReturnValue(args, Dart_True()); |
| 323 } else { | 304 } else { |
| 324 Dart_Handle err = DartUtils::NewDartOSError(); | 305 Dart_Handle err = DartUtils::NewDartOSError(); |
| 325 if (Dart_IsError(err)) Dart_PropagateError(err); | 306 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 326 Dart_SetReturnValue(args, err); | 307 Dart_SetReturnValue(args, err); |
| 327 } | 308 } |
| 328 } else { | 309 } else { |
| 329 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 310 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 330 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 311 Dart_Handle err = DartUtils::NewDartOSError(&os_error); |
| 331 if (Dart_IsError(err)) Dart_PropagateError(err); | 312 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 332 Dart_SetReturnValue(args, err); | 313 Dart_SetReturnValue(args, err); |
| 333 } | 314 } |
| 334 Dart_ExitScope(); | |
| 335 } | 315 } |
| 336 | 316 |
| 337 | 317 |
| 338 void FUNCTION_NAME(File_Truncate)(Dart_NativeArguments args) { | 318 void FUNCTION_NAME(File_Truncate)(Dart_NativeArguments args) { |
| 339 Dart_EnterScope(); | |
| 340 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 319 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 341 ASSERT(file != NULL); | 320 ASSERT(file != NULL); |
| 342 int64_t length = 0; | 321 int64_t length = 0; |
| 343 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &length)) { | 322 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &length)) { |
| 344 if (file->Truncate(length)) { | 323 if (file->Truncate(length)) { |
| 345 Dart_SetReturnValue(args, Dart_True()); | 324 Dart_SetReturnValue(args, Dart_True()); |
| 346 } else { | 325 } else { |
| 347 Dart_Handle err = DartUtils::NewDartOSError(); | 326 Dart_Handle err = DartUtils::NewDartOSError(); |
| 348 if (Dart_IsError(err)) Dart_PropagateError(err); | 327 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 349 Dart_SetReturnValue(args, err); | 328 Dart_SetReturnValue(args, err); |
| 350 } | 329 } |
| 351 } else { | 330 } else { |
| 352 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 331 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 353 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 332 Dart_Handle err = DartUtils::NewDartOSError(&os_error); |
| 354 if (Dart_IsError(err)) Dart_PropagateError(err); | 333 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 355 Dart_SetReturnValue(args, err); | 334 Dart_SetReturnValue(args, err); |
| 356 } | 335 } |
| 357 Dart_ExitScope(); | |
| 358 } | 336 } |
| 359 | 337 |
| 360 | 338 |
| 361 void FUNCTION_NAME(File_Length)(Dart_NativeArguments args) { | 339 void FUNCTION_NAME(File_Length)(Dart_NativeArguments args) { |
| 362 Dart_EnterScope(); | |
| 363 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 340 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 364 ASSERT(file != NULL); | 341 ASSERT(file != NULL); |
| 365 intptr_t return_value = file->Length(); | 342 intptr_t return_value = file->Length(); |
| 366 if (return_value >= 0) { | 343 if (return_value >= 0) { |
| 367 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); | 344 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); |
| 368 } else { | 345 } else { |
| 369 Dart_Handle err = DartUtils::NewDartOSError(); | 346 Dart_Handle err = DartUtils::NewDartOSError(); |
| 370 if (Dart_IsError(err)) Dart_PropagateError(err); | 347 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 371 Dart_SetReturnValue(args, err); | 348 Dart_SetReturnValue(args, err); |
| 372 } | 349 } |
| 373 Dart_ExitScope(); | |
| 374 } | 350 } |
| 375 | 351 |
| 376 | 352 |
| 377 void FUNCTION_NAME(File_LengthFromPath)(Dart_NativeArguments args) { | 353 void FUNCTION_NAME(File_LengthFromPath)(Dart_NativeArguments args) { |
| 378 Dart_EnterScope(); | |
| 379 const char* path = | 354 const char* path = |
| 380 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 355 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 381 intptr_t return_value = File::LengthFromPath(path); | 356 intptr_t return_value = File::LengthFromPath(path); |
| 382 if (return_value >= 0) { | 357 if (return_value >= 0) { |
| 383 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); | 358 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); |
| 384 } else { | 359 } else { |
| 385 Dart_Handle err = DartUtils::NewDartOSError(); | 360 Dart_Handle err = DartUtils::NewDartOSError(); |
| 386 if (Dart_IsError(err)) Dart_PropagateError(err); | 361 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 387 Dart_SetReturnValue(args, err); | 362 Dart_SetReturnValue(args, err); |
| 388 } | 363 } |
| 389 Dart_ExitScope(); | |
| 390 } | 364 } |
| 391 | 365 |
| 392 | 366 |
| 393 void FUNCTION_NAME(File_LastModified)(Dart_NativeArguments args) { | 367 void FUNCTION_NAME(File_LastModified)(Dart_NativeArguments args) { |
| 394 Dart_EnterScope(); | |
| 395 const char* name = | 368 const char* name = |
| 396 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 369 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 397 int64_t return_value = File::LastModified(name); | 370 int64_t return_value = File::LastModified(name); |
| 398 if (return_value >= 0) { | 371 if (return_value >= 0) { |
| 399 Dart_SetReturnValue(args, Dart_NewInteger(return_value * kMSPerSecond)); | 372 Dart_SetReturnValue(args, Dart_NewInteger(return_value * kMSPerSecond)); |
| 400 } else { | 373 } else { |
| 401 Dart_Handle err = DartUtils::NewDartOSError(); | 374 Dart_Handle err = DartUtils::NewDartOSError(); |
| 402 if (Dart_IsError(err)) Dart_PropagateError(err); | 375 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 403 Dart_SetReturnValue(args, err); | 376 Dart_SetReturnValue(args, err); |
| 404 } | 377 } |
| 405 Dart_ExitScope(); | |
| 406 } | 378 } |
| 407 | 379 |
| 408 | 380 |
| 409 void FUNCTION_NAME(File_Flush)(Dart_NativeArguments args) { | 381 void FUNCTION_NAME(File_Flush)(Dart_NativeArguments args) { |
| 410 Dart_EnterScope(); | |
| 411 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 382 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 412 ASSERT(file != NULL); | 383 ASSERT(file != NULL); |
| 413 if (file->Flush()) { | 384 if (file->Flush()) { |
| 414 Dart_SetReturnValue(args, Dart_True()); | 385 Dart_SetReturnValue(args, Dart_True()); |
| 415 } else { | 386 } else { |
| 416 Dart_Handle err = DartUtils::NewDartOSError(); | 387 Dart_Handle err = DartUtils::NewDartOSError(); |
| 417 if (Dart_IsError(err)) Dart_PropagateError(err); | 388 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 418 Dart_SetReturnValue(args, err); | 389 Dart_SetReturnValue(args, err); |
| 419 } | 390 } |
| 420 Dart_ExitScope(); | |
| 421 } | 391 } |
| 422 | 392 |
| 423 | 393 |
| 424 void FUNCTION_NAME(File_Create)(Dart_NativeArguments args) { | 394 void FUNCTION_NAME(File_Create)(Dart_NativeArguments args) { |
| 425 Dart_EnterScope(); | |
| 426 const char* str = | 395 const char* str = |
| 427 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 396 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 428 bool result = File::Create(str); | 397 bool result = File::Create(str); |
| 429 if (result) { | 398 if (result) { |
| 430 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 399 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 431 } else { | 400 } else { |
| 432 Dart_Handle err = DartUtils::NewDartOSError(); | 401 Dart_Handle err = DartUtils::NewDartOSError(); |
| 433 if (Dart_IsError(err)) Dart_PropagateError(err); | 402 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 434 Dart_SetReturnValue(args, err); | 403 Dart_SetReturnValue(args, err); |
| 435 } | 404 } |
| 436 Dart_ExitScope(); | |
| 437 } | 405 } |
| 438 | 406 |
| 439 | 407 |
| 440 void FUNCTION_NAME(File_CreateLink)(Dart_NativeArguments args) { | 408 void FUNCTION_NAME(File_CreateLink)(Dart_NativeArguments args) { |
| 441 Dart_EnterScope(); | |
| 442 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && | 409 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && |
| 443 Dart_IsString(Dart_GetNativeArgument(args, 1))) { | 410 Dart_IsString(Dart_GetNativeArgument(args, 1))) { |
| 444 const char* name = | 411 const char* name = |
| 445 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 412 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 446 const char* target = | 413 const char* target = |
| 447 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 414 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 448 if (!File::CreateLink(name, target)) { | 415 if (!File::CreateLink(name, target)) { |
| 449 Dart_Handle err = DartUtils::NewDartOSError(); | 416 Dart_Handle err = DartUtils::NewDartOSError(); |
| 450 if (Dart_IsError(err)) Dart_PropagateError(err); | 417 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 451 Dart_SetReturnValue(args, err); | 418 Dart_SetReturnValue(args, err); |
| 452 } | 419 } |
| 453 } else { | 420 } else { |
| 454 Dart_Handle err = DartUtils::NewDartArgumentError( | 421 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 455 "Non-string argument to Link.create"); | 422 "Non-string argument to Link.create"); |
| 456 if (Dart_IsError(err)) Dart_PropagateError(err); | 423 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 457 Dart_SetReturnValue(args, err); | 424 Dart_SetReturnValue(args, err); |
| 458 } | 425 } |
| 459 Dart_ExitScope(); | |
| 460 } | 426 } |
| 461 | 427 |
| 462 | 428 |
| 463 void FUNCTION_NAME(File_LinkTarget)(Dart_NativeArguments args) { | 429 void FUNCTION_NAME(File_LinkTarget)(Dart_NativeArguments args) { |
| 464 Dart_EnterScope(); | |
| 465 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { | 430 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { |
| 466 const char* name = | 431 const char* name = |
| 467 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 432 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 468 char* target = File::LinkTarget(name); | 433 char* target = File::LinkTarget(name); |
| 469 if (target == NULL) { | 434 if (target == NULL) { |
| 470 Dart_Handle err = DartUtils::NewDartOSError(); | 435 Dart_Handle err = DartUtils::NewDartOSError(); |
| 471 if (Dart_IsError(err)) Dart_PropagateError(err); | 436 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 472 Dart_SetReturnValue(args, err); | 437 Dart_SetReturnValue(args, err); |
| 473 } else { | 438 } else { |
| 474 Dart_SetReturnValue(args, DartUtils::NewString(target)); | 439 Dart_SetReturnValue(args, DartUtils::NewString(target)); |
| 475 free(target); | 440 free(target); |
| 476 } | 441 } |
| 477 } else { | 442 } else { |
| 478 Dart_Handle err = DartUtils::NewDartArgumentError( | 443 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 479 "Non-string argument to Link.target"); | 444 "Non-string argument to Link.target"); |
| 480 if (Dart_IsError(err)) Dart_PropagateError(err); | 445 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 481 Dart_SetReturnValue(args, err); | 446 Dart_SetReturnValue(args, err); |
| 482 } | 447 } |
| 483 Dart_ExitScope(); | |
| 484 } | 448 } |
| 485 | 449 |
| 486 | 450 |
| 487 void FUNCTION_NAME(File_Delete)(Dart_NativeArguments args) { | 451 void FUNCTION_NAME(File_Delete)(Dart_NativeArguments args) { |
| 488 Dart_EnterScope(); | |
| 489 const char* str = | 452 const char* str = |
| 490 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 453 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 491 bool result = File::Delete(str); | 454 bool result = File::Delete(str); |
| 492 if (result) { | 455 if (result) { |
| 493 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 456 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 494 } else { | 457 } else { |
| 495 Dart_Handle err = DartUtils::NewDartOSError(); | 458 Dart_Handle err = DartUtils::NewDartOSError(); |
| 496 if (Dart_IsError(err)) Dart_PropagateError(err); | 459 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 497 Dart_SetReturnValue(args, err); | 460 Dart_SetReturnValue(args, err); |
| 498 } | 461 } |
| 499 Dart_ExitScope(); | |
| 500 } | 462 } |
| 501 | 463 |
| 502 | 464 |
| 503 void FUNCTION_NAME(File_DeleteLink)(Dart_NativeArguments args) { | 465 void FUNCTION_NAME(File_DeleteLink)(Dart_NativeArguments args) { |
| 504 Dart_EnterScope(); | |
| 505 const char* str = | 466 const char* str = |
| 506 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 467 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 507 bool result = File::DeleteLink(str); | 468 bool result = File::DeleteLink(str); |
| 508 if (result) { | 469 if (result) { |
| 509 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 470 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 510 } else { | 471 } else { |
| 511 Dart_Handle err = DartUtils::NewDartOSError(); | 472 Dart_Handle err = DartUtils::NewDartOSError(); |
| 512 if (Dart_IsError(err)) Dart_PropagateError(err); | 473 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 513 Dart_SetReturnValue(args, err); | 474 Dart_SetReturnValue(args, err); |
| 514 } | 475 } |
| 515 Dart_ExitScope(); | |
| 516 } | 476 } |
| 517 | 477 |
| 518 | 478 |
| 519 void FUNCTION_NAME(File_Rename)(Dart_NativeArguments args) { | 479 void FUNCTION_NAME(File_Rename)(Dart_NativeArguments args) { |
| 520 Dart_EnterScope(); | |
| 521 const char* old_path = | 480 const char* old_path = |
| 522 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 481 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 523 const char* new_path = | 482 const char* new_path = |
| 524 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 483 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 525 bool result = File::Rename(old_path, new_path); | 484 bool result = File::Rename(old_path, new_path); |
| 526 if (result) { | 485 if (result) { |
| 527 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 486 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 528 } else { | 487 } else { |
| 529 Dart_Handle err = DartUtils::NewDartOSError(); | 488 Dart_Handle err = DartUtils::NewDartOSError(); |
| 530 if (Dart_IsError(err)) Dart_PropagateError(err); | 489 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 531 Dart_SetReturnValue(args, err); | 490 Dart_SetReturnValue(args, err); |
| 532 } | 491 } |
| 533 Dart_ExitScope(); | |
| 534 } | 492 } |
| 535 | 493 |
| 536 | 494 |
| 537 void FUNCTION_NAME(File_RenameLink)(Dart_NativeArguments args) { | 495 void FUNCTION_NAME(File_RenameLink)(Dart_NativeArguments args) { |
| 538 Dart_EnterScope(); | |
| 539 const char* old_path = | 496 const char* old_path = |
| 540 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 497 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 541 const char* new_path = | 498 const char* new_path = |
| 542 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 499 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 543 bool result = File::RenameLink(old_path, new_path); | 500 bool result = File::RenameLink(old_path, new_path); |
| 544 if (result) { | 501 if (result) { |
| 545 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 502 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 546 } else { | 503 } else { |
| 547 Dart_Handle err = DartUtils::NewDartOSError(); | 504 Dart_Handle err = DartUtils::NewDartOSError(); |
| 548 if (Dart_IsError(err)) Dart_PropagateError(err); | 505 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 549 Dart_SetReturnValue(args, err); | 506 Dart_SetReturnValue(args, err); |
| 550 } | 507 } |
| 551 Dart_ExitScope(); | |
| 552 } | 508 } |
| 553 | 509 |
| 554 | 510 |
| 555 void FUNCTION_NAME(File_FullPath)(Dart_NativeArguments args) { | 511 void FUNCTION_NAME(File_FullPath)(Dart_NativeArguments args) { |
| 556 Dart_EnterScope(); | |
| 557 const char* str = | 512 const char* str = |
| 558 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 513 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 559 char* path = File::GetCanonicalPath(str); | 514 char* path = File::GetCanonicalPath(str); |
| 560 if (path != NULL) { | 515 if (path != NULL) { |
| 561 Dart_SetReturnValue(args, DartUtils::NewString(path)); | 516 Dart_SetReturnValue(args, DartUtils::NewString(path)); |
| 562 free(path); | 517 free(path); |
| 563 } else { | 518 } else { |
| 564 Dart_Handle err = DartUtils::NewDartOSError(); | 519 Dart_Handle err = DartUtils::NewDartOSError(); |
| 565 if (Dart_IsError(err)) Dart_PropagateError(err); | 520 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 566 Dart_SetReturnValue(args, err); | 521 Dart_SetReturnValue(args, err); |
| 567 } | 522 } |
| 568 Dart_ExitScope(); | |
| 569 } | 523 } |
| 570 | 524 |
| 571 | 525 |
| 572 void FUNCTION_NAME(File_OpenStdio)(Dart_NativeArguments args) { | 526 void FUNCTION_NAME(File_OpenStdio)(Dart_NativeArguments args) { |
| 573 Dart_EnterScope(); | |
| 574 int64_t fd = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 0)); | 527 int64_t fd = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 0)); |
| 575 ASSERT(fd == 0 || fd == 1 || fd == 2); | 528 ASSERT(fd == 0 || fd == 1 || fd == 2); |
| 576 File* file = File::OpenStdio(static_cast<int>(fd)); | 529 File* file = File::OpenStdio(static_cast<int>(fd)); |
| 577 Dart_SetReturnValue(args, Dart_NewInteger(reinterpret_cast<intptr_t>(file))); | 530 Dart_SetReturnValue(args, Dart_NewInteger(reinterpret_cast<intptr_t>(file))); |
| 578 Dart_ExitScope(); | |
| 579 } | 531 } |
| 580 | 532 |
| 581 | 533 |
| 582 void FUNCTION_NAME(File_GetStdioHandleType)(Dart_NativeArguments args) { | 534 void FUNCTION_NAME(File_GetStdioHandleType)(Dart_NativeArguments args) { |
| 583 Dart_EnterScope(); | |
| 584 int64_t fd = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 0)); | 535 int64_t fd = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 0)); |
| 585 ASSERT(fd == 0 || fd == 1 || fd == 2); | 536 ASSERT(fd == 0 || fd == 1 || fd == 2); |
| 586 File::StdioHandleType type = File::GetStdioHandleType(static_cast<int>(fd)); | 537 File::StdioHandleType type = File::GetStdioHandleType(static_cast<int>(fd)); |
| 587 Dart_SetReturnValue(args, Dart_NewInteger(type)); | 538 Dart_SetReturnValue(args, Dart_NewInteger(type)); |
| 588 Dart_ExitScope(); | |
| 589 } | 539 } |
| 590 | 540 |
| 591 | 541 |
| 592 void FUNCTION_NAME(File_GetType)(Dart_NativeArguments args) { | 542 void FUNCTION_NAME(File_GetType)(Dart_NativeArguments args) { |
| 593 Dart_EnterScope(); | |
| 594 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && | 543 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && |
| 595 Dart_IsBoolean(Dart_GetNativeArgument(args, 1))) { | 544 Dart_IsBoolean(Dart_GetNativeArgument(args, 1))) { |
| 596 const char* str = | 545 const char* str = |
| 597 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 546 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 598 bool follow_links = | 547 bool follow_links = |
| 599 DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 1)); | 548 DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 1)); |
| 600 File::Type type = File::GetType(str, follow_links); | 549 File::Type type = File::GetType(str, follow_links); |
| 601 Dart_SetReturnValue(args, Dart_NewInteger(static_cast<int>(type))); | 550 Dart_SetReturnValue(args, Dart_NewInteger(static_cast<int>(type))); |
| 602 } else { | 551 } else { |
| 603 Dart_Handle err = DartUtils::NewDartArgumentError( | 552 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 604 "Non-string argument to FileSystemEntity.type"); | 553 "Non-string argument to FileSystemEntity.type"); |
| 605 if (Dart_IsError(err)) Dart_PropagateError(err); | 554 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 606 Dart_SetReturnValue(args, err); | 555 Dart_SetReturnValue(args, err); |
| 607 } | 556 } |
| 608 Dart_ExitScope(); | |
| 609 } | 557 } |
| 610 | 558 |
| 611 | 559 |
| 612 void FUNCTION_NAME(File_Stat)(Dart_NativeArguments args) { | 560 void FUNCTION_NAME(File_Stat)(Dart_NativeArguments args) { |
| 613 Dart_EnterScope(); | |
| 614 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { | 561 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { |
| 615 const char* path = | 562 const char* path = |
| 616 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 563 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 617 | 564 |
| 618 int64_t stat_data[File::kStatSize]; | 565 int64_t stat_data[File::kStatSize]; |
| 619 File::Stat(path, stat_data); | 566 File::Stat(path, stat_data); |
| 620 if (stat_data[File::kType] == File::kDoesNotExist) { | 567 if (stat_data[File::kType] == File::kDoesNotExist) { |
| 621 Dart_Handle err = DartUtils::NewDartOSError(); | 568 Dart_Handle err = DartUtils::NewDartOSError(); |
| 622 if (Dart_IsError(err)) Dart_PropagateError(err); | 569 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 623 Dart_SetReturnValue(args, err); | 570 Dart_SetReturnValue(args, err); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 637 status = Dart_TypedDataReleaseData(returned_data); | 584 status = Dart_TypedDataReleaseData(returned_data); |
| 638 if (Dart_IsError(status)) Dart_PropagateError(status); | 585 if (Dart_IsError(status)) Dart_PropagateError(status); |
| 639 Dart_SetReturnValue(args, returned_data); | 586 Dart_SetReturnValue(args, returned_data); |
| 640 } | 587 } |
| 641 } else { | 588 } else { |
| 642 Dart_Handle err = DartUtils::NewDartArgumentError( | 589 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 643 "Non-string argument to FileSystemEntity.stat"); | 590 "Non-string argument to FileSystemEntity.stat"); |
| 644 if (Dart_IsError(err)) Dart_PropagateError(err); | 591 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 645 Dart_SetReturnValue(args, err); | 592 Dart_SetReturnValue(args, err); |
| 646 } | 593 } |
| 647 Dart_ExitScope(); | |
| 648 } | 594 } |
| 649 | 595 |
| 650 | 596 |
| 651 void FUNCTION_NAME(File_AreIdentical)(Dart_NativeArguments args) { | 597 void FUNCTION_NAME(File_AreIdentical)(Dart_NativeArguments args) { |
| 652 Dart_EnterScope(); | |
| 653 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && | 598 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && |
| 654 Dart_IsString(Dart_GetNativeArgument(args, 1))) { | 599 Dart_IsString(Dart_GetNativeArgument(args, 1))) { |
| 655 const char* path_1 = | 600 const char* path_1 = |
| 656 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 601 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 657 const char* path_2 = | 602 const char* path_2 = |
| 658 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 603 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 659 File::Identical result = File::AreIdentical(path_1, path_2); | 604 File::Identical result = File::AreIdentical(path_1, path_2); |
| 660 if (result == File::kError) { | 605 if (result == File::kError) { |
| 661 Dart_Handle err = DartUtils::NewDartOSError(); | 606 Dart_Handle err = DartUtils::NewDartOSError(); |
| 662 if (Dart_IsError(err)) Dart_PropagateError(err); | 607 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 663 Dart_SetReturnValue(args, err); | 608 Dart_SetReturnValue(args, err); |
| 664 } else { | 609 } else { |
| 665 Dart_SetReturnValue(args, Dart_NewBoolean(result == File::kIdentical)); | 610 Dart_SetReturnValue(args, Dart_NewBoolean(result == File::kIdentical)); |
| 666 } | 611 } |
| 667 } else { | 612 } else { |
| 668 Dart_Handle err = DartUtils::NewDartArgumentError( | 613 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 669 "Non-string argument to FileSystemEntity.identical"); | 614 "Non-string argument to FileSystemEntity.identical"); |
| 670 if (Dart_IsError(err)) Dart_PropagateError(err); | 615 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 671 Dart_SetReturnValue(args, err); | 616 Dart_SetReturnValue(args, err); |
| 672 } | 617 } |
| 673 Dart_ExitScope(); | |
| 674 } | 618 } |
| 675 | 619 |
| 676 | 620 |
| 677 static int64_t CObjectInt32OrInt64ToInt64(CObject* cobject) { | 621 static int64_t CObjectInt32OrInt64ToInt64(CObject* cobject) { |
| 678 ASSERT(cobject->IsInt32OrInt64()); | 622 ASSERT(cobject->IsInt32OrInt64()); |
| 679 int64_t result; | 623 int64_t result; |
| 680 if (cobject->IsInt32()) { | 624 if (cobject->IsInt32()) { |
| 681 CObjectInt32 value(cobject); | 625 CObjectInt32 value(cobject); |
| 682 result = value.Value(); | 626 result = value.Value(); |
| 683 } else { | 627 } else { |
| (...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1317 Dart_PostCObject(reply_port_id, response->AsApiCObject()); | 1261 Dart_PostCObject(reply_port_id, response->AsApiCObject()); |
| 1318 } | 1262 } |
| 1319 | 1263 |
| 1320 | 1264 |
| 1321 Dart_Port File::GetServicePort() { | 1265 Dart_Port File::GetServicePort() { |
| 1322 return file_service_.GetServicePort(); | 1266 return file_service_.GetServicePort(); |
| 1323 } | 1267 } |
| 1324 | 1268 |
| 1325 | 1269 |
| 1326 void FUNCTION_NAME(File_NewServicePort)(Dart_NativeArguments args) { | 1270 void FUNCTION_NAME(File_NewServicePort)(Dart_NativeArguments args) { |
| 1327 Dart_EnterScope(); | |
| 1328 Dart_SetReturnValue(args, Dart_Null()); | 1271 Dart_SetReturnValue(args, Dart_Null()); |
| 1329 Dart_Port service_port = File::GetServicePort(); | 1272 Dart_Port service_port = File::GetServicePort(); |
| 1330 if (service_port != ILLEGAL_PORT) { | 1273 if (service_port != ILLEGAL_PORT) { |
| 1331 // Return a send port for the service port. | 1274 // Return a send port for the service port. |
| 1332 Dart_Handle send_port = Dart_NewSendPort(service_port); | 1275 Dart_Handle send_port = Dart_NewSendPort(service_port); |
| 1333 Dart_SetReturnValue(args, send_port); | 1276 Dart_SetReturnValue(args, send_port); |
| 1334 } | 1277 } |
| 1335 Dart_ExitScope(); | |
| 1336 } | 1278 } |
| 1337 | 1279 |
| 1338 } // namespace bin | 1280 } // namespace bin |
| 1339 } // namespace dart | 1281 } // namespace dart |
| OLD | NEW |