Index: runtime/vm/native_api_impl.cc |
diff --git a/runtime/vm/native_api_impl.cc b/runtime/vm/native_api_impl.cc |
index c707c9e9cf776f4b752becc58dedc150cdd3a504..774686cc53e682a159098b44a0d9344c8cf3b35f 100644 |
--- a/runtime/vm/native_api_impl.cc |
+++ b/runtime/vm/native_api_impl.cc |
@@ -56,6 +56,30 @@ DART_EXPORT bool Dart_PostCObject(Dart_Port port_id, Dart_CObject* message) { |
} |
+DART_EXPORT bool Dart_PostInteger(Dart_Port port_id, intptr_t message) { |
+ if (!Smi::IsValid(message)) { |
+ return false; |
+ } |
+ Message* msg = new Message( |
+ port_id, Smi::New(message), Message::kNormalPriority); |
+ |
+ // Post the message at the given port. |
+ return PortMap::PostMessage(msg); |
+} |
+ |
+ |
+DART_EXPORT bool Dart_PostSimpleObject(Dart_Port port_id, Dart_Handle message) { |
+ RawObject* raw_obj = Api::UnwrapHandle(message); |
+ if (raw_obj->IsHeapObject() && !raw_obj->IsVMHeapObject()) { |
+ return false; |
+ } |
+ Message* msg = new Message(port_id, raw_obj, Message::kNormalPriority); |
+ |
+ // Post the message at the given port. |
+ return PortMap::PostMessage(msg); |
+} |
+ |
+ |
DART_EXPORT Dart_Port Dart_NewNativePort(const char* name, |
Dart_NativeMessageHandler handler, |
bool handle_concurrently) { |