Add support for CFFI finalizer

This commit is contained in:
Joshua Granick
2015-09-16 12:57:28 -07:00
parent 395625e79b
commit 5bd80aaab3
2 changed files with 50 additions and 3 deletions

View File

@@ -40,6 +40,8 @@
#include <utils/LZMA.h>
#include <vm/NekoVM.h>
DEFINE_KIND (k_finalizer);
namespace lime {
@@ -168,6 +170,22 @@ namespace lime {
}
void lime_cffi_finalizer (value abstract) {
val_call0 ((value)val_data (abstract));
}
value lime_cffi_set_finalizer (value callback) {
value abstract = alloc_abstract (k_finalizer, callback);
val_gc (abstract, lime_cffi_finalizer);
return abstract;
}
value lime_clipboard_get_text () {
if (Clipboard::HasText ()) {
@@ -1245,6 +1263,7 @@ namespace lime {
DEFINE_PRIME2 (lime_bytes_from_data_pointer);
DEFINE_PRIME1 (lime_bytes_get_data_pointer);
DEFINE_PRIME1 (lime_bytes_read_file);
DEFINE_PRIME1 (lime_cffi_set_finalizer);
DEFINE_PRIME0 (lime_clipboard_get_text);
DEFINE_PRIME1v (lime_clipboard_set_text);
DEFINE_PRIME2 (lime_file_dialog_open_file);