blob: 02551140fa6b221c70b089621bbee19aea21bad8 [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "tonic/logging/dart_invoke.h"
#include "tonic/common/macros.h"
#include "tonic/logging/dart_error.h"
namespace tonic {
bool DartInvokeField(Dart_Handle target, const char *name,
std::initializer_list<Dart_Handle> args) {
Dart_Handle field = Dart_NewStringFromCString(name);
return LogIfError(Dart_Invoke(target, field, args.size(),
const_cast<Dart_Handle *>(args.begin())));
}
void DartInvoke(Dart_Handle closure, std::initializer_list<Dart_Handle> args) {
int argc = args.size();
Dart_Handle *argv = const_cast<Dart_Handle *>(args.begin());
Dart_Handle handle = Dart_InvokeClosure(closure, argc, argv);
LogIfError(handle);
}
Dart_Handle DartInvokeVoid(Dart_Handle closure) {
Dart_Handle handle = Dart_InvokeClosure(closure, 0, nullptr);
LogIfError(handle);
return handle;
}
} // namespace tonic