Flutter Engine
 
Loading...
Searching...
No Matches
tonic::DartConverterWrappable Struct Reference

#include <dart_wrappable.h>

Static Public Member Functions

static DartWrappableFromDart (Dart_Handle handle)
 
static DartWrappableFromArguments (Dart_NativeArguments args, int index, Dart_Handle &exception)
 

Detailed Description

Definition at line 84 of file dart_wrappable.h.

Member Function Documentation

◆ FromArguments()

DartWrappable * tonic::DartConverterWrappable::FromArguments ( Dart_NativeArguments  args,
int  index,
Dart_Handle &  exception 
)
static

Definition at line 99 of file dart_wrappable.cc.

101 {
102 intptr_t native_fields[DartWrappable::kNumberOfNativeFields];
103 Dart_Handle result = Dart_GetNativeFieldsOfArgument(
104 args, index, DartWrappable::kNumberOfNativeFields, native_fields);
105 if (Dart_IsError(result)) {
106 exception = Dart_NewStringFromCString(DartError::kInvalidArgument);
107 return nullptr;
108 }
109 if (!native_fields[DartWrappable::kPeerIndex])
110 return nullptr;
111 return reinterpret_cast<DartWrappable*>(
112 native_fields[DartWrappable::kPeerIndex]);
113}
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
const char kInvalidArgument[]
Definition dart_error.cc:14

References args, tonic::DartError::kInvalidArgument, tonic::DartWrappable::kNumberOfNativeFields, and tonic::DartWrappable::kPeerIndex.

Referenced by tonic::DartConverter< T *, typename std::enable_if< std::is_convertible< T *, const DartWrappable * >::value >::type >::FromArguments().

◆ FromDart()

DartWrappable * tonic::DartConverterWrappable::FromDart ( Dart_Handle  handle)
static

Definition at line 87 of file dart_wrappable.cc.

87 {
88 if (Dart_IsNull(handle)) {
89 return nullptr;
90 }
91 intptr_t peer = 0;
92 Dart_Handle result =
93 Dart_GetNativeInstanceField(handle, DartWrappable::kPeerIndex, &peer);
94 if (Dart_IsError(result))
95 return nullptr;
96 return reinterpret_cast<DartWrappable*>(peer);
97}

References tonic::DartWrappable::kPeerIndex.

Referenced by tonic::DartConverter< T *, typename std::enable_if< std::is_convertible< T *, const DartWrappable * >::value >::type >::FromDart().


The documentation for this struct was generated from the following files: