| Index: runtime/bin/crypto.cc
 | 
| diff --git a/runtime/bin/crypto.cc b/runtime/bin/crypto.cc
 | 
| index 6becae8be5aca77e084d722f7d01db78ab6e02ec..ec4840fdde94ca06249343653aa68d607a2228c9 100644
 | 
| --- a/runtime/bin/crypto.cc
 | 
| +++ b/runtime/bin/crypto.cc
 | 
| @@ -7,7 +7,6 @@
 | 
|  
 | 
|  #include "include/dart_api.h"
 | 
|  
 | 
| -
 | 
|  namespace dart {
 | 
|  namespace bin {
 | 
|  
 | 
| @@ -23,23 +22,20 @@ void FUNCTION_NAME(Crypto_GetRandomBytes)(Dart_NativeArguments args) {
 | 
|      Dart_ThrowException(error);
 | 
|    }
 | 
|    intptr_t count = static_cast<intptr_t>(count64);
 | 
| -  uint8_t* buffer = new uint8_t[count];
 | 
| +  uint8_t* buffer = Dart_ScopeAllocate(count);
 | 
|    ASSERT(buffer != NULL);
 | 
|    if (!Crypto::GetRandomBytes(count, buffer)) {
 | 
| -    delete[] buffer;
 | 
|      Dart_ThrowException(DartUtils::NewDartOSError());
 | 
|      UNREACHABLE();
 | 
|    }
 | 
|    Dart_Handle result = Dart_NewTypedData(Dart_TypedData_kUint8, count);
 | 
|    if (Dart_IsError(result)) {
 | 
| -    delete[] buffer;
 | 
|      Dart_Handle error = DartUtils::NewString("Failed to allocate storage.");
 | 
|      Dart_ThrowException(error);
 | 
|      UNREACHABLE();
 | 
|    }
 | 
|    Dart_ListSetAsBytes(result, 0, buffer, count);
 | 
|    Dart_SetReturnValue(args, result);
 | 
| -  delete[] buffer;
 | 
|  }
 | 
|  
 | 
|  }  // namespace bin
 | 
| 
 |