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));
|
||||
}
|
||||
|
||||
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));
|
||||
array->capacity = tag_fixnum(capacity);
|
||||
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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
gc_root<TYPE> array(array_,this);
|
||||
|
|
|
@ -166,7 +166,6 @@ struct factorvm {
|
|||
inline card *addr_to_allot_marker(object *a);
|
||||
inline void write_barrier(object *obj);
|
||||
inline void allot_barrier(object *address);
|
||||
// next method here:
|
||||
|
||||
|
||||
//data_gc
|
||||
|
@ -211,7 +210,10 @@ struct factorvm {
|
|||
std::vector<cell> gc_bignums;
|
||||
|
||||
// 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);
|
||||
// next method here:
|
||||
|
||||
//debug
|
||||
void print_chars(string* str);
|
||||
|
|
Loading…
Reference in New Issue