Import @vroad byte pinning for C#
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#include <hx/CFFIExt.h>
|
||||
#include <system/System.h>
|
||||
#include <utils/Bytes.h>
|
||||
|
||||
@@ -39,8 +40,9 @@ namespace lime {
|
||||
|
||||
_data = 0;
|
||||
_length = 0;
|
||||
_value = 0;
|
||||
_pin = 0;
|
||||
_root = 0;
|
||||
_value = 0;
|
||||
|
||||
}
|
||||
|
||||
@@ -51,8 +53,9 @@ namespace lime {
|
||||
|
||||
_data = 0;
|
||||
_length = 0;
|
||||
_value = 0;
|
||||
_pin = 0;
|
||||
_root = 0;
|
||||
_value = 0;
|
||||
|
||||
Resize (size);
|
||||
|
||||
@@ -65,8 +68,9 @@ namespace lime {
|
||||
|
||||
_data = 0;
|
||||
_length = 0;
|
||||
_value = 0;
|
||||
_pin = 0;
|
||||
_root = 0;
|
||||
_value = 0;
|
||||
|
||||
Set (bytes);
|
||||
|
||||
@@ -79,8 +83,9 @@ namespace lime {
|
||||
|
||||
_data = 0;
|
||||
_length = 0;
|
||||
_value = 0;
|
||||
_pin = 0;
|
||||
_root = 0;
|
||||
_value = 0;
|
||||
|
||||
FILE_HANDLE *file = lime::fopen (path, "rb");
|
||||
|
||||
@@ -112,8 +117,9 @@ namespace lime {
|
||||
|
||||
_data = 0;
|
||||
_length = 0;
|
||||
_value = 0;
|
||||
_pin = 0;
|
||||
_root = 0;
|
||||
_value = 0;
|
||||
|
||||
Set (data);
|
||||
|
||||
@@ -122,6 +128,12 @@ namespace lime {
|
||||
|
||||
Bytes::~Bytes () {
|
||||
|
||||
if (_pin) {
|
||||
|
||||
EXT_unpin_buffer (_pin);
|
||||
|
||||
}
|
||||
|
||||
if (_root) {
|
||||
|
||||
delete _root;
|
||||
@@ -298,6 +310,13 @@ namespace lime {
|
||||
|
||||
if (_value) {
|
||||
|
||||
if (!_pin && HAS_pin_buffer ()) {
|
||||
|
||||
buffer b = val_to_buffer (val_field (_value, id_b));
|
||||
_pin = EXT_pin_buffer (b);
|
||||
|
||||
}
|
||||
|
||||
return _value;
|
||||
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user