moved generic_array.hpp functions to vm
parent
b1189dc4f1
commit
625380c25c
|
@ -19,18 +19,28 @@ template <typename T> cell array_size(T *array)
|
||||||
return array_size<T>(array_capacity(array));
|
return array_size<T>(array_capacity(array));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> T *allot_array_internal(cell capacity)
|
template <typename T> T *factorvm::allot_array_internal(cell capacity)
|
||||||
{
|
{
|
||||||
T *array = allot<T>(array_size<T>(capacity));
|
T *array = allot<T>(array_size<T>(capacity));
|
||||||
array->capacity = tag_fixnum(capacity);
|
array->capacity = tag_fixnum(capacity);
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> bool reallot_array_in_place_p(T *array, cell capacity)
|
template <typename T> T *allot_array_internal(cell capacity)
|
||||||
|
{
|
||||||
|
return vm->allot_array_internal<T>(capacity);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T> bool factorvm::reallot_array_in_place_p(T *array, cell capacity)
|
||||||
{
|
{
|
||||||
return in_zone(&nursery,array) && capacity <= array_capacity(array);
|
return in_zone(&nursery,array) && capacity <= array_capacity(array);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T> bool reallot_array_in_place_p(T *array, cell capacity)
|
||||||
|
{
|
||||||
|
return vm->reallot_array_in_place_p<T>(array,capacity);
|
||||||
|
}
|
||||||
|
|
||||||
template <typename TYPE> TYPE *factorvm::reallot_array(TYPE *array_, cell capacity)
|
template <typename TYPE> TYPE *factorvm::reallot_array(TYPE *array_, cell capacity)
|
||||||
{
|
{
|
||||||
gc_root<TYPE> array(array_,this);
|
gc_root<TYPE> array(array_,this);
|
||||||
|
|
|
@ -166,7 +166,6 @@ struct factorvm {
|
||||||
inline card *addr_to_allot_marker(object *a);
|
inline card *addr_to_allot_marker(object *a);
|
||||||
inline void write_barrier(object *obj);
|
inline void write_barrier(object *obj);
|
||||||
inline void allot_barrier(object *address);
|
inline void allot_barrier(object *address);
|
||||||
// next method here:
|
|
||||||
|
|
||||||
|
|
||||||
//data_gc
|
//data_gc
|
||||||
|
@ -211,7 +210,10 @@ struct factorvm {
|
||||||
std::vector<cell> gc_bignums;
|
std::vector<cell> gc_bignums;
|
||||||
|
|
||||||
// generic arrays
|
// generic arrays
|
||||||
|
template <typename T> T *allot_array_internal(cell capacity);
|
||||||
|
template <typename T> bool reallot_array_in_place_p(T *array, cell capacity);
|
||||||
template <typename TYPE> TYPE *reallot_array(TYPE *array_, cell capacity);
|
template <typename TYPE> TYPE *reallot_array(TYPE *array_, cell capacity);
|
||||||
|
// next method here:
|
||||||
|
|
||||||
//debug
|
//debug
|
||||||
void print_chars(string* str);
|
void print_chars(string* str);
|
||||||
|
|
Loading…
Reference in New Issue