Move definition of SIZE_POOL_COUNT back to gc.h
SIZE_POOL_COUNT is a GC macro, it should belong in gc.h and not shape.h. SIZE_POOL_COUNT doesn't depend on shape.h so we can have shape.h depend on gc.h. Co-Authored-By: Matt Valentine-House <matt@eightbitraptor.com>
This commit is contained in:
parent
d5eafaed81
commit
c505448cdb
Notes:
git
2022-12-15 21:34:06 +00:00
@ -9244,12 +9244,16 @@ math.$(OBJEXT): {$(VPATH)}shape.h
|
|||||||
math.$(OBJEXT): {$(VPATH)}st.h
|
math.$(OBJEXT): {$(VPATH)}st.h
|
||||||
math.$(OBJEXT): {$(VPATH)}subst.h
|
math.$(OBJEXT): {$(VPATH)}subst.h
|
||||||
memory_view.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
memory_view.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
||||||
|
memory_view.$(OBJEXT): $(top_srcdir)/internal/compilers.h
|
||||||
|
memory_view.$(OBJEXT): $(top_srcdir)/internal/gc.h
|
||||||
memory_view.$(OBJEXT): $(top_srcdir)/internal/hash.h
|
memory_view.$(OBJEXT): $(top_srcdir)/internal/hash.h
|
||||||
memory_view.$(OBJEXT): $(top_srcdir)/internal/variable.h
|
memory_view.$(OBJEXT): $(top_srcdir)/internal/variable.h
|
||||||
|
memory_view.$(OBJEXT): $(top_srcdir)/internal/warnings.h
|
||||||
memory_view.$(OBJEXT): {$(VPATH)}assert.h
|
memory_view.$(OBJEXT): {$(VPATH)}assert.h
|
||||||
memory_view.$(OBJEXT): {$(VPATH)}backward/2/assume.h
|
memory_view.$(OBJEXT): {$(VPATH)}backward/2/assume.h
|
||||||
memory_view.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
|
memory_view.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
|
||||||
memory_view.$(OBJEXT): {$(VPATH)}backward/2/bool.h
|
memory_view.$(OBJEXT): {$(VPATH)}backward/2/bool.h
|
||||||
|
memory_view.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
|
||||||
memory_view.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
|
memory_view.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
|
||||||
memory_view.$(OBJEXT): {$(VPATH)}backward/2/limits.h
|
memory_view.$(OBJEXT): {$(VPATH)}backward/2/limits.h
|
||||||
memory_view.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
|
memory_view.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
|
||||||
@ -10662,6 +10666,7 @@ pack.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
|||||||
pack.$(OBJEXT): $(top_srcdir)/internal/array.h
|
pack.$(OBJEXT): $(top_srcdir)/internal/array.h
|
||||||
pack.$(OBJEXT): $(top_srcdir)/internal/bits.h
|
pack.$(OBJEXT): $(top_srcdir)/internal/bits.h
|
||||||
pack.$(OBJEXT): $(top_srcdir)/internal/compilers.h
|
pack.$(OBJEXT): $(top_srcdir)/internal/compilers.h
|
||||||
|
pack.$(OBJEXT): $(top_srcdir)/internal/gc.h
|
||||||
pack.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
|
pack.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
|
||||||
pack.$(OBJEXT): $(top_srcdir)/internal/string.h
|
pack.$(OBJEXT): $(top_srcdir)/internal/string.h
|
||||||
pack.$(OBJEXT): $(top_srcdir)/internal/symbol.h
|
pack.$(OBJEXT): $(top_srcdir)/internal/symbol.h
|
||||||
@ -11716,6 +11721,7 @@ random.$(OBJEXT): $(top_srcdir)/internal/bignum.h
|
|||||||
random.$(OBJEXT): $(top_srcdir)/internal/bits.h
|
random.$(OBJEXT): $(top_srcdir)/internal/bits.h
|
||||||
random.$(OBJEXT): $(top_srcdir)/internal/compilers.h
|
random.$(OBJEXT): $(top_srcdir)/internal/compilers.h
|
||||||
random.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
|
random.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
|
||||||
|
random.$(OBJEXT): $(top_srcdir)/internal/gc.h
|
||||||
random.$(OBJEXT): $(top_srcdir)/internal/numeric.h
|
random.$(OBJEXT): $(top_srcdir)/internal/numeric.h
|
||||||
random.$(OBJEXT): $(top_srcdir)/internal/random.h
|
random.$(OBJEXT): $(top_srcdir)/internal/random.h
|
||||||
random.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
|
random.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
|
||||||
|
@ -67,7 +67,13 @@ struct rb_objspace; /* in vm_core.h */
|
|||||||
rb_obj_write((VALUE)(a), UNALIGNED_MEMBER_ACCESS((VALUE *)(slot)), \
|
rb_obj_write((VALUE)(a), UNALIGNED_MEMBER_ACCESS((VALUE *)(slot)), \
|
||||||
(VALUE)(b), __FILE__, __LINE__)
|
(VALUE)(b), __FILE__, __LINE__)
|
||||||
|
|
||||||
#include "shape.h"
|
// We use SIZE_POOL_COUNT number of shape IDs for transitions out of different size pools
|
||||||
|
// The next available shapd ID will be the SPECIAL_CONST_SHAPE_ID
|
||||||
|
#if USE_RVARGC && (SIZEOF_UINT64_T == SIZEOF_VALUE)
|
||||||
|
# define SIZE_POOL_COUNT 5
|
||||||
|
#else
|
||||||
|
# define SIZE_POOL_COUNT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#define RCLASS_EXT_EMBEDDED (SIZE_POOL_COUNT > 1)
|
#define RCLASS_EXT_EMBEDDED (SIZE_POOL_COUNT > 1)
|
||||||
|
|
||||||
|
11
shape.h
11
shape.h
@ -1,5 +1,8 @@
|
|||||||
#ifndef RUBY_SHAPE_H
|
#ifndef RUBY_SHAPE_H
|
||||||
#define RUBY_SHAPE_H
|
#define RUBY_SHAPE_H
|
||||||
|
|
||||||
|
#include "internal/gc.h"
|
||||||
|
|
||||||
#if (SIZEOF_UINT64_T == SIZEOF_VALUE)
|
#if (SIZEOF_UINT64_T == SIZEOF_VALUE)
|
||||||
#define SIZEOF_SHAPE_T 4
|
#define SIZEOF_SHAPE_T 4
|
||||||
#define SHAPE_IN_BASIC_FLAGS 1
|
#define SHAPE_IN_BASIC_FLAGS 1
|
||||||
@ -33,14 +36,6 @@ typedef uint16_t shape_id_t;
|
|||||||
# define INVALID_SHAPE_ID SHAPE_MASK
|
# define INVALID_SHAPE_ID SHAPE_MASK
|
||||||
# define ROOT_SHAPE_ID 0x0
|
# define ROOT_SHAPE_ID 0x0
|
||||||
|
|
||||||
// We use SIZE_POOL_COUNT number of shape IDs for transitions out of different size pools
|
|
||||||
// The next available shapd ID will be the SPECIAL_CONST_SHAPE_ID
|
|
||||||
#if USE_RVARGC && (SIZEOF_UINT64_T == SIZEOF_VALUE)
|
|
||||||
# define SIZE_POOL_COUNT 5
|
|
||||||
#else
|
|
||||||
# define SIZE_POOL_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
# define SPECIAL_CONST_SHAPE_ID (SIZE_POOL_COUNT * 2)
|
# define SPECIAL_CONST_SHAPE_ID (SIZE_POOL_COUNT * 2)
|
||||||
# define OBJ_TOO_COMPLEX_SHAPE_ID (SPECIAL_CONST_SHAPE_ID + 1)
|
# define OBJ_TOO_COMPLEX_SHAPE_ID (SPECIAL_CONST_SHAPE_ID + 1)
|
||||||
|
|
||||||
|
@ -1103,6 +1103,8 @@ extern "C" {
|
|||||||
pub fn rb_attr_get(obj: VALUE, name: ID) -> VALUE;
|
pub fn rb_attr_get(obj: VALUE, name: ID) -> VALUE;
|
||||||
pub fn rb_obj_info_dump(obj: VALUE);
|
pub fn rb_obj_info_dump(obj: VALUE);
|
||||||
pub fn rb_reg_new_ary(ary: VALUE, options: ::std::os::raw::c_int) -> VALUE;
|
pub fn rb_reg_new_ary(ary: VALUE, options: ::std::os::raw::c_int) -> VALUE;
|
||||||
|
pub fn rb_class_allocate_instance(klass: VALUE) -> VALUE;
|
||||||
|
pub fn rb_obj_info(obj: VALUE) -> *const ::std::os::raw::c_char;
|
||||||
pub fn rb_shape_id_offset() -> i32;
|
pub fn rb_shape_id_offset() -> i32;
|
||||||
pub fn rb_shape_get_shape_by_id(shape_id: shape_id_t) -> *mut rb_shape_t;
|
pub fn rb_shape_get_shape_by_id(shape_id: shape_id_t) -> *mut rb_shape_t;
|
||||||
pub fn rb_shape_get_shape_id(obj: VALUE) -> shape_id_t;
|
pub fn rb_shape_get_shape_id(obj: VALUE) -> shape_id_t;
|
||||||
@ -1124,8 +1126,6 @@ extern "C" {
|
|||||||
n: ::std::os::raw::c_long,
|
n: ::std::os::raw::c_long,
|
||||||
elts: *const VALUE,
|
elts: *const VALUE,
|
||||||
) -> VALUE;
|
) -> VALUE;
|
||||||
pub fn rb_class_allocate_instance(klass: VALUE) -> VALUE;
|
|
||||||
pub fn rb_obj_info(obj: VALUE) -> *const ::std::os::raw::c_char;
|
|
||||||
pub fn rb_method_entry_at(obj: VALUE, id: ID) -> *const rb_method_entry_t;
|
pub fn rb_method_entry_at(obj: VALUE, id: ID) -> *const rb_method_entry_t;
|
||||||
pub fn rb_callable_method_entry(klass: VALUE, id: ID) -> *const rb_callable_method_entry_t;
|
pub fn rb_callable_method_entry(klass: VALUE, id: ID) -> *const rb_callable_method_entry_t;
|
||||||
pub fn rb_callable_method_entry_or_negative(
|
pub fn rb_callable_method_entry_or_negative(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user