| 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/embedded_dart_io.h" | 9 #include "bin/embedded_dart_io.h" |
| 10 #include "bin/io_buffer.h" | 10 #include "bin/io_buffer.h" |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 // Check that the file exists before opening it only for | 129 // Check that the file exists before opening it only for |
| 130 // reading. This is to prevent the opening of directories as | 130 // reading. This is to prevent the opening of directories as |
| 131 // files. Directories can be opened for reading using the posix | 131 // files. Directories can be opened for reading using the posix |
| 132 // 'open' call. | 132 // 'open' call. |
| 133 File* file = NULL; | 133 File* file = NULL; |
| 134 file = File::Open(filename, file_mode); | 134 file = File::Open(filename, file_mode); |
| 135 if (file != NULL) { | 135 if (file != NULL) { |
| 136 Dart_SetReturnValue(args, | 136 Dart_SetReturnValue(args, |
| 137 Dart_NewInteger(reinterpret_cast<intptr_t>(file))); | 137 Dart_NewInteger(reinterpret_cast<intptr_t>(file))); |
| 138 } else { | 138 } else { |
| 139 Dart_Handle err = DartUtils::NewDartOSError(); | 139 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 140 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 141 Dart_SetReturnValue(args, err); | |
| 142 } | 140 } |
| 143 } | 141 } |
| 144 | 142 |
| 145 | 143 |
| 146 void FUNCTION_NAME(File_Exists)(Dart_NativeArguments args) { | 144 void FUNCTION_NAME(File_Exists)(Dart_NativeArguments args) { |
| 147 const char* filename = | 145 const char* filename = |
| 148 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 146 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 149 bool exists = File::Exists(filename); | 147 bool exists = File::Exists(filename); |
| 150 Dart_SetReturnValue(args, Dart_NewBoolean(exists)); | 148 Dart_SetReturnValue(args, Dart_NewBoolean(exists)); |
| 151 } | 149 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 169 void FUNCTION_NAME(File_ReadByte)(Dart_NativeArguments args) { | 167 void FUNCTION_NAME(File_ReadByte)(Dart_NativeArguments args) { |
| 170 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 168 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 171 ASSERT(file != NULL); | 169 ASSERT(file != NULL); |
| 172 uint8_t buffer; | 170 uint8_t buffer; |
| 173 int64_t bytes_read = file->Read(reinterpret_cast<void*>(&buffer), 1); | 171 int64_t bytes_read = file->Read(reinterpret_cast<void*>(&buffer), 1); |
| 174 if (bytes_read == 1) { | 172 if (bytes_read == 1) { |
| 175 Dart_SetReturnValue(args, Dart_NewInteger(buffer)); | 173 Dart_SetReturnValue(args, Dart_NewInteger(buffer)); |
| 176 } else if (bytes_read == 0) { | 174 } else if (bytes_read == 0) { |
| 177 Dart_SetReturnValue(args, Dart_NewInteger(-1)); | 175 Dart_SetReturnValue(args, Dart_NewInteger(-1)); |
| 178 } else { | 176 } else { |
| 179 Dart_Handle err = DartUtils::NewDartOSError(); | 177 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 180 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 181 Dart_SetReturnValue(args, err); | |
| 182 } | 178 } |
| 183 } | 179 } |
| 184 | 180 |
| 185 | 181 |
| 186 void FUNCTION_NAME(File_WriteByte)(Dart_NativeArguments args) { | 182 void FUNCTION_NAME(File_WriteByte)(Dart_NativeArguments args) { |
| 187 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 183 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 188 ASSERT(file != NULL); | 184 ASSERT(file != NULL); |
| 189 int64_t byte = 0; | 185 int64_t byte = 0; |
| 190 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &byte)) { | 186 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &byte)) { |
| 191 uint8_t buffer = static_cast<uint8_t>(byte & 0xff); | 187 uint8_t buffer = static_cast<uint8_t>(byte & 0xff); |
| 192 bool success = file->WriteFully(reinterpret_cast<void*>(&buffer), 1); | 188 bool success = file->WriteFully(reinterpret_cast<void*>(&buffer), 1); |
| 193 if (success) { | 189 if (success) { |
| 194 Dart_SetReturnValue(args, Dart_NewInteger(1)); | 190 Dart_SetReturnValue(args, Dart_NewInteger(1)); |
| 195 } else { | 191 } else { |
| 196 Dart_Handle err = DartUtils::NewDartOSError(); | 192 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 197 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 198 Dart_SetReturnValue(args, err); | |
| 199 } | 193 } |
| 200 } else { | 194 } else { |
| 201 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 195 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 202 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 196 Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error)); |
| 203 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 204 Dart_SetReturnValue(args, err); | |
| 205 } | 197 } |
| 206 } | 198 } |
| 207 | 199 |
| 208 | 200 |
| 209 void FUNCTION_NAME(File_Read)(Dart_NativeArguments args) { | 201 void FUNCTION_NAME(File_Read)(Dart_NativeArguments args) { |
| 210 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 202 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 211 ASSERT(file != NULL); | 203 ASSERT(file != NULL); |
| 212 Dart_Handle length_object = Dart_GetNativeArgument(args, 1); | 204 Dart_Handle length_object = Dart_GetNativeArgument(args, 1); |
| 213 int64_t length = 0; | 205 int64_t length = 0; |
| 214 if (DartUtils::GetInt64Value(length_object, &length)) { | 206 if (DartUtils::GetInt64Value(length_object, &length)) { |
| 215 uint8_t* buffer = NULL; | 207 uint8_t* buffer = NULL; |
| 216 Dart_Handle external_array = IOBuffer::Allocate(length, &buffer); | 208 Dart_Handle external_array = IOBuffer::Allocate(length, &buffer); |
| 217 int64_t bytes_read = file->Read(reinterpret_cast<void*>(buffer), length); | 209 int64_t bytes_read = file->Read(reinterpret_cast<void*>(buffer), length); |
| 218 if (bytes_read < 0) { | 210 if (bytes_read < 0) { |
| 219 Dart_Handle err = DartUtils::NewDartOSError(); | 211 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 220 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 221 Dart_SetReturnValue(args, err); | |
| 222 } else { | 212 } else { |
| 223 if (bytes_read < length) { | 213 if (bytes_read < length) { |
| 224 const int kNumArgs = 3; | 214 const int kNumArgs = 3; |
| 225 Dart_Handle dart_args[kNumArgs]; | 215 Dart_Handle dart_args[kNumArgs]; |
| 226 dart_args[0] = external_array; | 216 dart_args[0] = external_array; |
| 227 dart_args[1] = Dart_NewInteger(0); | 217 dart_args[1] = Dart_NewInteger(0); |
| 228 dart_args[2] = Dart_NewInteger(bytes_read); | 218 dart_args[2] = Dart_NewInteger(bytes_read); |
| 229 // TODO(sgjesse): Cache the _makeUint8ListView function somewhere. | 219 // TODO(sgjesse): Cache the _makeUint8ListView function somewhere. |
| 230 Dart_Handle io_lib = | 220 Dart_Handle io_lib = |
| 231 Dart_LookupLibrary(DartUtils::NewString("dart:io")); | 221 Dart_LookupLibrary(DartUtils::NewString("dart:io")); |
| 232 if (Dart_IsError(io_lib)) Dart_PropagateError(io_lib); | 222 if (Dart_IsError(io_lib)) Dart_PropagateError(io_lib); |
| 233 Dart_Handle array_view = | 223 Dart_Handle array_view = |
| 234 Dart_Invoke(io_lib, | 224 Dart_Invoke(io_lib, |
| 235 DartUtils::NewString("_makeUint8ListView"), | 225 DartUtils::NewString("_makeUint8ListView"), |
| 236 kNumArgs, | 226 kNumArgs, |
| 237 dart_args); | 227 dart_args); |
| 238 if (Dart_IsError(array_view)) Dart_PropagateError(array_view); | |
| 239 Dart_SetReturnValue(args, array_view); | 228 Dart_SetReturnValue(args, array_view); |
| 240 } else { | 229 } else { |
| 241 Dart_SetReturnValue(args, external_array); | 230 Dart_SetReturnValue(args, external_array); |
| 242 } | 231 } |
| 243 } | 232 } |
| 244 } else { | 233 } else { |
| 245 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 234 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 246 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 235 Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error)); |
| 247 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 248 Dart_SetReturnValue(args, err); | |
| 249 } | 236 } |
| 250 } | 237 } |
| 251 | 238 |
| 252 | 239 |
| 253 void FUNCTION_NAME(File_ReadInto)(Dart_NativeArguments args) { | 240 void FUNCTION_NAME(File_ReadInto)(Dart_NativeArguments args) { |
| 254 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 241 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 255 ASSERT(file != NULL); | 242 ASSERT(file != NULL); |
| 256 Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); | 243 Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); |
| 257 ASSERT(Dart_IsList(buffer_obj)); | 244 ASSERT(Dart_IsList(buffer_obj)); |
| 258 // start and end arguments are checked in Dart code to be | 245 // start and end arguments are checked in Dart code to be |
| 259 // integers and have the property that end <= | 246 // integers and have the property that end <= |
| 260 // list.length. Therefore, it is safe to extract their value as | 247 // list.length. Therefore, it is safe to extract their value as |
| 261 // intptr_t. | 248 // intptr_t. |
| 262 intptr_t start = | 249 intptr_t start = |
| 263 DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 2)); | 250 DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 2)); |
| 264 intptr_t end = | 251 intptr_t end = |
| 265 DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 3)); | 252 DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 3)); |
| 266 intptr_t length = end - start; | 253 intptr_t length = end - start; |
| 267 intptr_t array_len = 0; | 254 intptr_t array_len = 0; |
| 268 Dart_Handle result = Dart_ListLength(buffer_obj, &array_len); | 255 Dart_Handle result = Dart_ListLength(buffer_obj, &array_len); |
| 269 if (Dart_IsError(result)) Dart_PropagateError(result); | 256 if (Dart_IsError(result)) Dart_PropagateError(result); |
| 270 ASSERT(end <= array_len); | 257 ASSERT(end <= array_len); |
| 271 uint8_t* buffer = new uint8_t[length]; | 258 uint8_t* buffer = new uint8_t[length]; |
| 272 int64_t bytes_read = file->Read(reinterpret_cast<void*>(buffer), length); | 259 int64_t bytes_read = file->Read(reinterpret_cast<void*>(buffer), length); |
| 273 if (bytes_read >= 0) { | 260 if (bytes_read >= 0) { |
| 274 result = Dart_ListSetAsBytes(buffer_obj, start, buffer, bytes_read); | 261 result = Dart_ListSetAsBytes(buffer_obj, start, buffer, bytes_read); |
| 275 if (Dart_IsError(result)) { | 262 if (Dart_IsError(result)) { |
| 276 delete[] buffer; | 263 Dart_SetReturnValue(args, result); |
| 277 Dart_PropagateError(result); | 264 } else { |
| 265 Dart_SetReturnValue(args, Dart_NewInteger(bytes_read)); |
| 278 } | 266 } |
| 279 Dart_SetReturnValue(args, Dart_NewInteger(bytes_read)); | |
| 280 } else { | 267 } else { |
| 281 Dart_Handle err = DartUtils::NewDartOSError(); | 268 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 282 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 283 Dart_SetReturnValue(args, err); | |
| 284 } | 269 } |
| 285 delete[] buffer; | 270 delete[] buffer; |
| 286 } | 271 } |
| 287 | 272 |
| 288 | 273 |
| 289 void FUNCTION_NAME(File_WriteFrom)(Dart_NativeArguments args) { | 274 void FUNCTION_NAME(File_WriteFrom)(Dart_NativeArguments args) { |
| 290 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 275 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 291 ASSERT(file != NULL); | 276 ASSERT(file != NULL); |
| 292 | 277 |
| 293 Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); | 278 Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 316 ASSERT(buffer != NULL); | 301 ASSERT(buffer != NULL); |
| 317 | 302 |
| 318 // Write all the data out into the file. | 303 // Write all the data out into the file. |
| 319 bool success = file->WriteFully(buffer, length); | 304 bool success = file->WriteFully(buffer, length); |
| 320 | 305 |
| 321 // Release the direct pointer acquired above. | 306 // Release the direct pointer acquired above. |
| 322 result = Dart_TypedDataReleaseData(buffer_obj); | 307 result = Dart_TypedDataReleaseData(buffer_obj); |
| 323 if (Dart_IsError(result)) Dart_PropagateError(result); | 308 if (Dart_IsError(result)) Dart_PropagateError(result); |
| 324 | 309 |
| 325 if (!success) { | 310 if (!success) { |
| 326 Dart_Handle err = DartUtils::NewDartOSError(); | 311 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 327 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 328 Dart_SetReturnValue(args, err); | |
| 329 } else { | 312 } else { |
| 330 Dart_SetReturnValue(args, Dart_Null()); | 313 Dart_SetReturnValue(args, Dart_Null()); |
| 331 } | 314 } |
| 332 } | 315 } |
| 333 | 316 |
| 334 | 317 |
| 335 void FUNCTION_NAME(File_Position)(Dart_NativeArguments args) { | 318 void FUNCTION_NAME(File_Position)(Dart_NativeArguments args) { |
| 336 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 319 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 337 ASSERT(file != NULL); | 320 ASSERT(file != NULL); |
| 338 intptr_t return_value = file->Position(); | 321 intptr_t return_value = file->Position(); |
| 339 if (return_value >= 0) { | 322 if (return_value >= 0) { |
| 340 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); | 323 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); |
| 341 } else { | 324 } else { |
| 342 Dart_Handle err = DartUtils::NewDartOSError(); | 325 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 343 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 344 Dart_SetReturnValue(args, err); | |
| 345 } | 326 } |
| 346 } | 327 } |
| 347 | 328 |
| 348 | 329 |
| 349 void FUNCTION_NAME(File_SetPosition)(Dart_NativeArguments args) { | 330 void FUNCTION_NAME(File_SetPosition)(Dart_NativeArguments args) { |
| 350 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 331 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 351 ASSERT(file != NULL); | 332 ASSERT(file != NULL); |
| 352 int64_t position = 0; | 333 int64_t position = 0; |
| 353 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &position)) { | 334 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &position)) { |
| 354 if (file->SetPosition(position)) { | 335 if (file->SetPosition(position)) { |
| 355 Dart_SetReturnValue(args, Dart_True()); | 336 Dart_SetReturnValue(args, Dart_True()); |
| 356 } else { | 337 } else { |
| 357 Dart_Handle err = DartUtils::NewDartOSError(); | 338 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 358 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 359 Dart_SetReturnValue(args, err); | |
| 360 } | 339 } |
| 361 } else { | 340 } else { |
| 362 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 341 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 363 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 342 Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error)); |
| 364 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 365 Dart_SetReturnValue(args, err); | |
| 366 } | 343 } |
| 367 } | 344 } |
| 368 | 345 |
| 369 | 346 |
| 370 void FUNCTION_NAME(File_Truncate)(Dart_NativeArguments args) { | 347 void FUNCTION_NAME(File_Truncate)(Dart_NativeArguments args) { |
| 371 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 348 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 372 ASSERT(file != NULL); | 349 ASSERT(file != NULL); |
| 373 int64_t length = 0; | 350 int64_t length = 0; |
| 374 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &length)) { | 351 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &length)) { |
| 375 if (file->Truncate(length)) { | 352 if (file->Truncate(length)) { |
| 376 Dart_SetReturnValue(args, Dart_True()); | 353 Dart_SetReturnValue(args, Dart_True()); |
| 377 } else { | 354 } else { |
| 378 Dart_Handle err = DartUtils::NewDartOSError(); | 355 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 379 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 380 Dart_SetReturnValue(args, err); | |
| 381 } | 356 } |
| 382 } else { | 357 } else { |
| 383 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 358 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 384 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 359 Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error)); |
| 385 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 386 Dart_SetReturnValue(args, err); | |
| 387 } | 360 } |
| 388 } | 361 } |
| 389 | 362 |
| 390 | 363 |
| 391 void FUNCTION_NAME(File_Length)(Dart_NativeArguments args) { | 364 void FUNCTION_NAME(File_Length)(Dart_NativeArguments args) { |
| 392 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 365 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 393 ASSERT(file != NULL); | 366 ASSERT(file != NULL); |
| 394 int64_t return_value = file->Length(); | 367 int64_t return_value = file->Length(); |
| 395 if (return_value >= 0) { | 368 if (return_value >= 0) { |
| 396 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); | 369 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); |
| 397 } else { | 370 } else { |
| 398 Dart_Handle err = DartUtils::NewDartOSError(); | 371 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 399 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 400 Dart_SetReturnValue(args, err); | |
| 401 } | 372 } |
| 402 } | 373 } |
| 403 | 374 |
| 404 | 375 |
| 405 void FUNCTION_NAME(File_LengthFromPath)(Dart_NativeArguments args) { | 376 void FUNCTION_NAME(File_LengthFromPath)(Dart_NativeArguments args) { |
| 406 const char* path = | 377 const char* path = |
| 407 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 378 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 408 int64_t return_value = File::LengthFromPath(path); | 379 int64_t return_value = File::LengthFromPath(path); |
| 409 if (return_value >= 0) { | 380 if (return_value >= 0) { |
| 410 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); | 381 Dart_SetReturnValue(args, Dart_NewInteger(return_value)); |
| 411 } else { | 382 } else { |
| 412 Dart_Handle err = DartUtils::NewDartOSError(); | 383 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 413 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 414 Dart_SetReturnValue(args, err); | |
| 415 } | 384 } |
| 416 } | 385 } |
| 417 | 386 |
| 418 | 387 |
| 419 void FUNCTION_NAME(File_LastModified)(Dart_NativeArguments args) { | 388 void FUNCTION_NAME(File_LastModified)(Dart_NativeArguments args) { |
| 420 const char* name = | 389 const char* name = |
| 421 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 390 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 422 int64_t return_value = File::LastModified(name); | 391 int64_t return_value = File::LastModified(name); |
| 423 if (return_value >= 0) { | 392 if (return_value >= 0) { |
| 424 Dart_SetReturnValue(args, Dart_NewInteger(return_value * kMSPerSecond)); | 393 Dart_SetReturnValue(args, Dart_NewInteger(return_value * kMSPerSecond)); |
| 425 } else { | 394 } else { |
| 426 Dart_Handle err = DartUtils::NewDartOSError(); | 395 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 427 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 428 Dart_SetReturnValue(args, err); | |
| 429 } | 396 } |
| 430 } | 397 } |
| 431 | 398 |
| 432 | 399 |
| 433 void FUNCTION_NAME(File_Flush)(Dart_NativeArguments args) { | 400 void FUNCTION_NAME(File_Flush)(Dart_NativeArguments args) { |
| 434 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 401 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 435 ASSERT(file != NULL); | 402 ASSERT(file != NULL); |
| 436 if (file->Flush()) { | 403 if (file->Flush()) { |
| 437 Dart_SetReturnValue(args, Dart_True()); | 404 Dart_SetReturnValue(args, Dart_True()); |
| 438 } else { | 405 } else { |
| 439 Dart_Handle err = DartUtils::NewDartOSError(); | 406 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 440 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 441 Dart_SetReturnValue(args, err); | |
| 442 } | 407 } |
| 443 } | 408 } |
| 444 | 409 |
| 445 | 410 |
| 446 void FUNCTION_NAME(File_Lock)(Dart_NativeArguments args) { | 411 void FUNCTION_NAME(File_Lock)(Dart_NativeArguments args) { |
| 447 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); | 412 File* file = GetFilePointer(Dart_GetNativeArgument(args, 0)); |
| 448 ASSERT(file != NULL); | 413 ASSERT(file != NULL); |
| 449 int64_t lock; | 414 int64_t lock; |
| 450 int64_t start; | 415 int64_t start; |
| 451 int64_t end; | 416 int64_t end; |
| 452 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &lock) && | 417 if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 1), &lock) && |
| 453 DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 2), &start) && | 418 DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 2), &start) && |
| 454 DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 3), &end)) { | 419 DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 3), &end)) { |
| 455 if ((lock >= File::kLockMin) && (lock <= File::kLockMax) && | 420 if ((lock >= File::kLockMin) && (lock <= File::kLockMax) && |
| 456 (start >= 0) && (end == -1 || end > start)) { | 421 (start >= 0) && (end == -1 || end > start)) { |
| 457 if (file->Lock(static_cast<File::LockType>(lock), start, end)) { | 422 if (file->Lock(static_cast<File::LockType>(lock), start, end)) { |
| 458 Dart_SetReturnValue(args, Dart_True()); | 423 Dart_SetReturnValue(args, Dart_True()); |
| 459 } else { | 424 } else { |
| 460 Dart_Handle err = DartUtils::NewDartOSError(); | 425 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 461 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 462 Dart_SetReturnValue(args, err); | |
| 463 } | 426 } |
| 464 return; | 427 return; |
| 465 } | 428 } |
| 466 } | 429 } |
| 467 | |
| 468 OSError os_error(-1, "Invalid argument", OSError::kUnknown); | 430 OSError os_error(-1, "Invalid argument", OSError::kUnknown); |
| 469 Dart_Handle err = DartUtils::NewDartOSError(&os_error); | 431 Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error)); |
| 470 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 471 Dart_SetReturnValue(args, err); | |
| 472 } | 432 } |
| 473 | 433 |
| 474 | 434 |
| 475 void FUNCTION_NAME(File_Create)(Dart_NativeArguments args) { | 435 void FUNCTION_NAME(File_Create)(Dart_NativeArguments args) { |
| 476 const char* str = | 436 const char* str = |
| 477 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 437 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 478 bool result = File::Create(str); | 438 bool result = File::Create(str); |
| 479 if (result) { | 439 if (result) { |
| 480 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 440 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 481 } else { | 441 } else { |
| 482 Dart_Handle err = DartUtils::NewDartOSError(); | 442 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 483 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 484 Dart_SetReturnValue(args, err); | |
| 485 } | 443 } |
| 486 } | 444 } |
| 487 | 445 |
| 488 | 446 |
| 489 void FUNCTION_NAME(File_CreateLink)(Dart_NativeArguments args) { | 447 void FUNCTION_NAME(File_CreateLink)(Dart_NativeArguments args) { |
| 490 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && | 448 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && |
| 491 Dart_IsString(Dart_GetNativeArgument(args, 1))) { | 449 Dart_IsString(Dart_GetNativeArgument(args, 1))) { |
| 492 const char* name = | 450 const char* name = |
| 493 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 451 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 494 const char* target = | 452 const char* target = |
| 495 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 453 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 496 if (!File::CreateLink(name, target)) { | 454 if (!File::CreateLink(name, target)) { |
| 497 Dart_Handle err = DartUtils::NewDartOSError(); | 455 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 498 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 499 Dart_SetReturnValue(args, err); | |
| 500 } | 456 } |
| 501 } else { | 457 } else { |
| 502 Dart_Handle err = DartUtils::NewDartArgumentError( | 458 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 503 "Non-string argument to Link.create"); | 459 "Non-string argument to Link.create"); |
| 504 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 505 Dart_SetReturnValue(args, err); | 460 Dart_SetReturnValue(args, err); |
| 506 } | 461 } |
| 507 } | 462 } |
| 508 | 463 |
| 509 | 464 |
| 510 void FUNCTION_NAME(File_LinkTarget)(Dart_NativeArguments args) { | 465 void FUNCTION_NAME(File_LinkTarget)(Dart_NativeArguments args) { |
| 511 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { | 466 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { |
| 512 const char* name = | 467 const char* name = |
| 513 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 468 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 514 char* target = File::LinkTarget(name); | 469 char* target = File::LinkTarget(name); |
| 515 if (target == NULL) { | 470 if (target == NULL) { |
| 516 Dart_Handle err = DartUtils::NewDartOSError(); | 471 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 517 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 518 Dart_SetReturnValue(args, err); | |
| 519 } else { | 472 } else { |
| 520 Dart_SetReturnValue(args, DartUtils::NewString(target)); | 473 Dart_SetReturnValue(args, DartUtils::NewString(target)); |
| 521 free(target); | 474 free(target); |
| 522 } | 475 } |
| 523 } else { | 476 } else { |
| 524 Dart_Handle err = DartUtils::NewDartArgumentError( | 477 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 525 "Non-string argument to Link.target"); | 478 "Non-string argument to Link.target"); |
| 526 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 527 Dart_SetReturnValue(args, err); | 479 Dart_SetReturnValue(args, err); |
| 528 } | 480 } |
| 529 } | 481 } |
| 530 | 482 |
| 531 | 483 |
| 532 void FUNCTION_NAME(File_Delete)(Dart_NativeArguments args) { | 484 void FUNCTION_NAME(File_Delete)(Dart_NativeArguments args) { |
| 533 const char* str = | 485 const char* str = |
| 534 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 486 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 535 bool result = File::Delete(str); | 487 bool result = File::Delete(str); |
| 536 if (result) { | 488 if (result) { |
| 537 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 489 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 538 } else { | 490 } else { |
| 539 Dart_Handle err = DartUtils::NewDartOSError(); | 491 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 540 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 541 Dart_SetReturnValue(args, err); | |
| 542 } | 492 } |
| 543 } | 493 } |
| 544 | 494 |
| 545 | 495 |
| 546 void FUNCTION_NAME(File_DeleteLink)(Dart_NativeArguments args) { | 496 void FUNCTION_NAME(File_DeleteLink)(Dart_NativeArguments args) { |
| 547 const char* str = | 497 const char* str = |
| 548 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 498 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 549 bool result = File::DeleteLink(str); | 499 bool result = File::DeleteLink(str); |
| 550 if (result) { | 500 if (result) { |
| 551 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 501 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 552 } else { | 502 } else { |
| 553 Dart_Handle err = DartUtils::NewDartOSError(); | 503 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 554 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 555 Dart_SetReturnValue(args, err); | |
| 556 } | 504 } |
| 557 } | 505 } |
| 558 | 506 |
| 559 | 507 |
| 560 void FUNCTION_NAME(File_Rename)(Dart_NativeArguments args) { | 508 void FUNCTION_NAME(File_Rename)(Dart_NativeArguments args) { |
| 561 const char* old_path = | 509 const char* old_path = |
| 562 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 510 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 563 const char* new_path = | 511 const char* new_path = |
| 564 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 512 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 565 bool result = File::Rename(old_path, new_path); | 513 bool result = File::Rename(old_path, new_path); |
| 566 if (result) { | 514 if (result) { |
| 567 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 515 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 568 } else { | 516 } else { |
| 569 Dart_Handle err = DartUtils::NewDartOSError(); | 517 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 570 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 571 Dart_SetReturnValue(args, err); | |
| 572 } | 518 } |
| 573 } | 519 } |
| 574 | 520 |
| 575 | 521 |
| 576 void FUNCTION_NAME(File_RenameLink)(Dart_NativeArguments args) { | 522 void FUNCTION_NAME(File_RenameLink)(Dart_NativeArguments args) { |
| 577 const char* old_path = | 523 const char* old_path = |
| 578 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 524 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 579 const char* new_path = | 525 const char* new_path = |
| 580 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 526 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 581 bool result = File::RenameLink(old_path, new_path); | 527 bool result = File::RenameLink(old_path, new_path); |
| 582 if (result) { | 528 if (result) { |
| 583 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 529 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 584 } else { | 530 } else { |
| 585 Dart_Handle err = DartUtils::NewDartOSError(); | 531 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 586 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 587 Dart_SetReturnValue(args, err); | |
| 588 } | 532 } |
| 589 } | 533 } |
| 590 | 534 |
| 591 | 535 |
| 592 void FUNCTION_NAME(File_Copy)(Dart_NativeArguments args) { | 536 void FUNCTION_NAME(File_Copy)(Dart_NativeArguments args) { |
| 593 const char* old_path = | 537 const char* old_path = |
| 594 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 538 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 595 const char* new_path = | 539 const char* new_path = |
| 596 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 540 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 597 bool result = File::Copy(old_path, new_path); | 541 bool result = File::Copy(old_path, new_path); |
| 598 if (result) { | 542 if (result) { |
| 599 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 543 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 600 } else { | 544 } else { |
| 601 Dart_Handle err = DartUtils::NewDartOSError(); | 545 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 602 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 603 Dart_SetReturnValue(args, err); | |
| 604 } | 546 } |
| 605 } | 547 } |
| 606 | 548 |
| 607 | 549 |
| 608 void FUNCTION_NAME(File_ResolveSymbolicLinks)(Dart_NativeArguments args) { | 550 void FUNCTION_NAME(File_ResolveSymbolicLinks)(Dart_NativeArguments args) { |
| 609 const char* str = | 551 const char* str = |
| 610 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 552 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 611 char* path = File::GetCanonicalPath(str); | 553 char* path = File::GetCanonicalPath(str); |
| 612 if (path != NULL) { | 554 if (path != NULL) { |
| 613 Dart_SetReturnValue(args, DartUtils::NewString(path)); | 555 Dart_SetReturnValue(args, DartUtils::NewString(path)); |
| 614 free(path); | 556 free(path); |
| 615 } else { | 557 } else { |
| 616 Dart_Handle err = DartUtils::NewDartOSError(); | 558 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 617 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 618 Dart_SetReturnValue(args, err); | |
| 619 } | 559 } |
| 620 } | 560 } |
| 621 | 561 |
| 622 | 562 |
| 623 void FUNCTION_NAME(File_OpenStdio)(Dart_NativeArguments args) { | 563 void FUNCTION_NAME(File_OpenStdio)(Dart_NativeArguments args) { |
| 624 int64_t fd = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 0)); | 564 int64_t fd = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 0)); |
| 625 ASSERT(fd == STDIN_FILENO || fd == STDOUT_FILENO || fd == STDERR_FILENO); | 565 ASSERT(fd == STDIN_FILENO || fd == STDOUT_FILENO || fd == STDERR_FILENO); |
| 626 File* file = File::OpenStdio(static_cast<int>(fd)); | 566 File* file = File::OpenStdio(static_cast<int>(fd)); |
| 627 Dart_SetReturnValue(args, Dart_NewInteger(reinterpret_cast<intptr_t>(file))); | 567 Dart_SetReturnValue(args, Dart_NewInteger(reinterpret_cast<intptr_t>(file))); |
| 628 } | 568 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 641 Dart_IsBoolean(Dart_GetNativeArgument(args, 1))) { | 581 Dart_IsBoolean(Dart_GetNativeArgument(args, 1))) { |
| 642 const char* str = | 582 const char* str = |
| 643 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 583 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 644 bool follow_links = | 584 bool follow_links = |
| 645 DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 1)); | 585 DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 1)); |
| 646 File::Type type = File::GetType(str, follow_links); | 586 File::Type type = File::GetType(str, follow_links); |
| 647 Dart_SetReturnValue(args, Dart_NewInteger(static_cast<int>(type))); | 587 Dart_SetReturnValue(args, Dart_NewInteger(static_cast<int>(type))); |
| 648 } else { | 588 } else { |
| 649 Dart_Handle err = DartUtils::NewDartArgumentError( | 589 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 650 "Non-string argument to FileSystemEntity.type"); | 590 "Non-string argument to FileSystemEntity.type"); |
| 651 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 652 Dart_SetReturnValue(args, err); | 591 Dart_SetReturnValue(args, err); |
| 653 } | 592 } |
| 654 } | 593 } |
| 655 | 594 |
| 656 | 595 |
| 657 void FUNCTION_NAME(File_Stat)(Dart_NativeArguments args) { | 596 void FUNCTION_NAME(File_Stat)(Dart_NativeArguments args) { |
| 658 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { | 597 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { |
| 659 const char* path = | 598 const char* path = |
| 660 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 599 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 661 | 600 |
| 662 int64_t stat_data[File::kStatSize]; | 601 int64_t stat_data[File::kStatSize]; |
| 663 File::Stat(path, stat_data); | 602 File::Stat(path, stat_data); |
| 664 if (stat_data[File::kType] == File::kDoesNotExist) { | 603 if (stat_data[File::kType] == File::kDoesNotExist) { |
| 665 Dart_Handle err = DartUtils::NewDartOSError(); | 604 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 666 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 667 Dart_SetReturnValue(args, err); | |
| 668 } else { | 605 } else { |
| 669 Dart_Handle returned_data = Dart_NewTypedData(Dart_TypedData_kInt64, | 606 Dart_Handle returned_data = Dart_NewTypedData(Dart_TypedData_kInt64, |
| 670 File::kStatSize); | 607 File::kStatSize); |
| 671 if (Dart_IsError(returned_data)) Dart_PropagateError(returned_data); | 608 if (Dart_IsError(returned_data)) Dart_PropagateError(returned_data); |
| 672 Dart_TypedData_Type data_type_unused; | 609 Dart_TypedData_Type data_type_unused; |
| 673 void* data_location; | 610 void* data_location; |
| 674 intptr_t data_length_unused; | 611 intptr_t data_length_unused; |
| 675 Dart_Handle status = Dart_TypedDataAcquireData(returned_data, | 612 Dart_Handle status = Dart_TypedDataAcquireData(returned_data, |
| 676 &data_type_unused, | 613 &data_type_unused, |
| 677 &data_location, | 614 &data_location, |
| 678 &data_length_unused); | 615 &data_length_unused); |
| 679 if (Dart_IsError(status)) Dart_PropagateError(status); | 616 if (Dart_IsError(status)) Dart_PropagateError(status); |
| 680 memmove(data_location, stat_data, File::kStatSize * sizeof(int64_t)); | 617 memmove(data_location, stat_data, File::kStatSize * sizeof(int64_t)); |
| 681 status = Dart_TypedDataReleaseData(returned_data); | 618 status = Dart_TypedDataReleaseData(returned_data); |
| 682 if (Dart_IsError(status)) Dart_PropagateError(status); | 619 if (Dart_IsError(status)) Dart_PropagateError(status); |
| 683 Dart_SetReturnValue(args, returned_data); | 620 Dart_SetReturnValue(args, returned_data); |
| 684 } | 621 } |
| 685 } else { | 622 } else { |
| 686 Dart_Handle err = DartUtils::NewDartArgumentError( | 623 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 687 "Non-string argument to FileSystemEntity.stat"); | 624 "Non-string argument to FileSystemEntity.stat"); |
| 688 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 689 Dart_SetReturnValue(args, err); | 625 Dart_SetReturnValue(args, err); |
| 690 } | 626 } |
| 691 } | 627 } |
| 692 | 628 |
| 693 | 629 |
| 694 void FUNCTION_NAME(File_AreIdentical)(Dart_NativeArguments args) { | 630 void FUNCTION_NAME(File_AreIdentical)(Dart_NativeArguments args) { |
| 695 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && | 631 if (Dart_IsString(Dart_GetNativeArgument(args, 0)) && |
| 696 Dart_IsString(Dart_GetNativeArgument(args, 1))) { | 632 Dart_IsString(Dart_GetNativeArgument(args, 1))) { |
| 697 const char* path_1 = | 633 const char* path_1 = |
| 698 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 634 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 699 const char* path_2 = | 635 const char* path_2 = |
| 700 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); | 636 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 701 File::Identical result = File::AreIdentical(path_1, path_2); | 637 File::Identical result = File::AreIdentical(path_1, path_2); |
| 702 if (result == File::kError) { | 638 if (result == File::kError) { |
| 703 Dart_Handle err = DartUtils::NewDartOSError(); | 639 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| 704 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 705 Dart_SetReturnValue(args, err); | |
| 706 } else { | 640 } else { |
| 707 Dart_SetReturnValue(args, Dart_NewBoolean(result == File::kIdentical)); | 641 Dart_SetReturnValue(args, Dart_NewBoolean(result == File::kIdentical)); |
| 708 } | 642 } |
| 709 } else { | 643 } else { |
| 710 Dart_Handle err = DartUtils::NewDartArgumentError( | 644 Dart_Handle err = DartUtils::NewDartArgumentError( |
| 711 "Non-string argument to FileSystemEntity.identical"); | 645 "Non-string argument to FileSystemEntity.identical"); |
| 712 if (Dart_IsError(err)) Dart_PropagateError(err); | |
| 713 Dart_SetReturnValue(args, err); | 646 Dart_SetReturnValue(args, err); |
| 714 } | 647 } |
| 715 } | 648 } |
| 716 | 649 |
| 717 | 650 |
| 718 static int64_t CObjectInt32OrInt64ToInt64(CObject* cobject) { | 651 static int64_t CObjectInt32OrInt64ToInt64(CObject* cobject) { |
| 719 ASSERT(cobject->IsInt32OrInt64()); | 652 ASSERT(cobject->IsInt32OrInt64()); |
| 720 int64_t result; | 653 int64_t result; |
| 721 if (cobject->IsInt32()) { | 654 if (cobject->IsInt32()) { |
| 722 CObjectInt32 value(cobject); | 655 CObjectInt32 value(cobject); |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1297 } | 1230 } |
| 1298 } else { | 1231 } else { |
| 1299 return CObject::FileClosedError(); | 1232 return CObject::FileClosedError(); |
| 1300 } | 1233 } |
| 1301 } | 1234 } |
| 1302 return CObject::IllegalArgumentError(); | 1235 return CObject::IllegalArgumentError(); |
| 1303 } | 1236 } |
| 1304 | 1237 |
| 1305 } // namespace bin | 1238 } // namespace bin |
| 1306 } // namespace dart | 1239 } // namespace dart |
| OLD | NEW |