Need to revert Byte changes, AutoGCRoot is releasing memory too quickly on iOS
This commit is contained in:
@@ -29,8 +29,7 @@ namespace lime {
|
|||||||
|
|
||||||
unsigned char *_data;
|
unsigned char *_data;
|
||||||
int _length;
|
int _length;
|
||||||
value _pin;
|
value *_root;
|
||||||
AutoGCRoot *_root;
|
|
||||||
value _value;
|
value _value;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
#include <hx/CFFIExt.h>
|
|
||||||
#include <system/System.h>
|
#include <system/System.h>
|
||||||
#include <utils/Bytes.h>
|
#include <utils/Bytes.h>
|
||||||
|
|
||||||
@@ -40,9 +39,8 @@ namespace lime {
|
|||||||
|
|
||||||
_data = 0;
|
_data = 0;
|
||||||
_length = 0;
|
_length = 0;
|
||||||
_pin = 0;
|
|
||||||
_root = 0;
|
|
||||||
_value = 0;
|
_value = 0;
|
||||||
|
_root = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,9 +51,8 @@ namespace lime {
|
|||||||
|
|
||||||
_data = 0;
|
_data = 0;
|
||||||
_length = 0;
|
_length = 0;
|
||||||
_pin = 0;
|
|
||||||
_root = 0;
|
|
||||||
_value = 0;
|
_value = 0;
|
||||||
|
_root = 0;
|
||||||
|
|
||||||
Resize (size);
|
Resize (size);
|
||||||
|
|
||||||
@@ -68,9 +65,8 @@ namespace lime {
|
|||||||
|
|
||||||
_data = 0;
|
_data = 0;
|
||||||
_length = 0;
|
_length = 0;
|
||||||
_pin = 0;
|
|
||||||
_root = 0;
|
|
||||||
_value = 0;
|
_value = 0;
|
||||||
|
_root = 0;
|
||||||
|
|
||||||
Set (bytes);
|
Set (bytes);
|
||||||
|
|
||||||
@@ -83,9 +79,8 @@ namespace lime {
|
|||||||
|
|
||||||
_data = 0;
|
_data = 0;
|
||||||
_length = 0;
|
_length = 0;
|
||||||
_pin = 0;
|
|
||||||
_root = 0;
|
|
||||||
_value = 0;
|
_value = 0;
|
||||||
|
_root = 0;
|
||||||
|
|
||||||
FILE_HANDLE *file = lime::fopen (path, "rb");
|
FILE_HANDLE *file = lime::fopen (path, "rb");
|
||||||
|
|
||||||
@@ -117,9 +112,8 @@ namespace lime {
|
|||||||
|
|
||||||
_data = 0;
|
_data = 0;
|
||||||
_length = 0;
|
_length = 0;
|
||||||
_pin = 0;
|
|
||||||
_root = 0;
|
|
||||||
_value = 0;
|
_value = 0;
|
||||||
|
_root = 0;
|
||||||
|
|
||||||
Set (data);
|
Set (data);
|
||||||
|
|
||||||
@@ -128,15 +122,10 @@ namespace lime {
|
|||||||
|
|
||||||
Bytes::~Bytes () {
|
Bytes::~Bytes () {
|
||||||
|
|
||||||
if (_pin) {
|
|
||||||
|
|
||||||
EXT_unpin_buffer (_pin);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_root) {
|
if (_root) {
|
||||||
|
|
||||||
delete _root;
|
*_root = 0;
|
||||||
|
free_root (_root);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,7 +160,8 @@ namespace lime {
|
|||||||
if (!_value) {
|
if (!_value) {
|
||||||
|
|
||||||
_value = alloc_empty_object ();
|
_value = alloc_empty_object ();
|
||||||
_root = new AutoGCRoot (_value);
|
_root = alloc_root ();
|
||||||
|
*_root = _value;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,7 +222,8 @@ namespace lime {
|
|||||||
|
|
||||||
if (_root) {
|
if (_root) {
|
||||||
|
|
||||||
delete _root;
|
*_root = 0;
|
||||||
|
free_root (_root);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,14 +235,11 @@ namespace lime {
|
|||||||
|
|
||||||
if (!_root) {
|
if (!_root) {
|
||||||
|
|
||||||
_root = new AutoGCRoot (_value);
|
_root = alloc_root ();
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
_root->set (_value);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*_root = _value;
|
||||||
_length = val_int (val_field (bytes, id_length));
|
_length = val_int (val_field (bytes, id_length));
|
||||||
|
|
||||||
if (_length > 0) {
|
if (_length > 0) {
|
||||||
@@ -295,7 +283,8 @@ namespace lime {
|
|||||||
|
|
||||||
if (_root) {
|
if (_root) {
|
||||||
|
|
||||||
delete _root;
|
*_root = 0;
|
||||||
|
free_root (_root);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -310,13 +299,6 @@ namespace lime {
|
|||||||
|
|
||||||
if (_value) {
|
if (_value) {
|
||||||
|
|
||||||
if (!_pin && HAS_pin_buffer ()) {
|
|
||||||
|
|
||||||
buffer b = val_to_buffer (val_field (_value, id_b));
|
|
||||||
_pin = EXT_pin_buffer (b);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return _value;
|
return _value;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user