Class: YTLJit::Runtime::Arena
- Defined in:
- lib/ytljit/arena.rb,
lib/ytljit/marshal.rb,
ext/ytljit.c
Instance Attribute Summary collapse
-
#using ⇒ Object
Returns the value of attribute using.
Instance Method Summary collapse
- #[](offset) ⇒ Object
- #[]=(offset, src) ⇒ Object
- #_dump_data ⇒ Object
- #_load_data(obj) ⇒ Object
- #body_address ⇒ Object
-
#initialize ⇒ Arena
constructor
A new instance of Arena.
- #raw_address ⇒ Object
- #size ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize ⇒ Arena
Returns a new instance of Arena.
4 5 6 |
# File 'lib/ytljit/arena.rb', line 4 def initialize @using = 0 end |
Instance Attribute Details
#using ⇒ Object
Returns the value of attribute using.
8 9 10 |
# File 'lib/ytljit/arena.rb', line 8 def using @using end |
Instance Method Details
#[](offset) ⇒ Object
152 153 154 155 156 157 158 159 160 161 162 |
# File 'ext/memory.c', line 152 VALUE ytl_arena_ref(VALUE self, VALUE offset) { struct ArenaHeader *arenah; int raw_offset; Data_Get_Struct(self, struct ArenaHeader, arenah); raw_offset = (arenah->body->size / sizeof(VALUE)) - FIX2INT(offset); return ULONG2NUM(arenah->body->body[raw_offset]); } |
#[]=(offset, src) ⇒ Object
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
# File 'ext/memory.c', line 164 VALUE ytl_arena_emit(VALUE self, VALUE offset, VALUE src) { struct ArenaHeader *arenah; int raw_offset; VALUE *newlastptr; Data_Get_Struct(self, struct ArenaHeader, arenah); raw_offset = (arenah->body->size / sizeof(VALUE)) - NUM2ULONG(offset); arenah->body->body[raw_offset] = FIX2INT(src); newlastptr = arenah->body->body + raw_offset; if (newlastptr < arenah->lastptr) { arenah->lastptr = newlastptr; } return src; } |
#_dump_data ⇒ Object
136 137 138 |
# File 'lib/ytljit/marshal.rb', line 136 def _dump_data [] end |
#_load_data(obj) ⇒ Object
140 141 |
# File 'lib/ytljit/marshal.rb', line 140 def _load_data(obj) end |
#body_address ⇒ Object
201 202 203 204 205 206 207 208 209 |
# File 'ext/memory.c', line 201 VALUE ytl_arena_address(VALUE self) { struct ArenaHeader *arenah; Data_Get_Struct(self, struct ArenaHeader, arenah); return ULONG2NUM((uintptr_t)arenah->body->body); } |
#raw_address ⇒ Object
211 212 213 214 215 216 217 218 219 |
# File 'ext/memory.c', line 211 VALUE ytl_arena_raw_address(VALUE self) { struct ArenaHeader *arenah; Data_Get_Struct(self, struct ArenaHeader, arenah); return ULONG2NUM((uintptr_t)arenah); } |
#size ⇒ Object
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'ext/memory.c', line 184 VALUE ytl_arena_size(VALUE self) { struct ArenaHeader *arenah; struct ArenaBody *arenab; int totsize; Data_Get_Struct(self, struct ArenaHeader, arenah); totsize = 0; for (arenab = arenah->body; arenab; arenab = arenab->next) { totsize += arenab->size; } return INT2FIX(totsize); } |
#to_s ⇒ Object
221 222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'ext/memory.c', line 221 VALUE ytl_arena_to_s(VALUE self) { struct ArenaHeader *arenah; Data_Get_Struct(self, struct ArenaHeader, arenah); return rb_sprintf("#<Arena %p size=%lu body=%p last=%p>", (void *)self, ytl_arena_size(self) / 2, (void *)arenah->body->body, (void *)arenah->lastptr); } |