summaryrefslogtreecommitdiff
path: root/darray.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove _with_gc functions in darrayPeter Zhu2022-05-031-57/+10
| | | | | | | darray was used in YJIT which required the functions to not trigger GC. YJIT has now moved to Rust and does not use darray anymore, so we can remove the functions that don't trigger GC and only keep the ones that trigger GC.
* Change feature_index from fake Array to darrayPeter Zhu2022-02-161-0/+2
| | | | | | | | Using a fake (malloc) RArray is not friendly for the garbage collector. Fake RArray does not have a heap page, so it causes Variable Width Allocation to crash when we try to implement it on Arrays. This commit changes feature_index from a RArray to a darray.
* Change darray size to size_t and add functions that use GC mallocPeter Zhu2022-02-161-51/+77
| | | | | | | Changes size and capacity of darray to size_t to support more elements. Adds functions to darray that use GC allocation functions.
* Add rb_darray_clear() for Kevin. Fix some warnings.Maxime Chevalier-Boisvert2021-10-201-0/+5
|
* Malloc branch entries (#112)Maxime Chevalier-Boisvert2021-10-201-0/+10
| | | | | | | | | | | * Malloc branch entries * Add ASM comment for stack overflow check * WIP * Fix branch GC code. Add rb_darray_remove_unordered(). * Fix block end_pos after branch rewriting. Remove dst_patched bits.
* Remove trailing whitespacesMaxime Chevalier-Boisvert2021-10-201-1/+1
|
* YJIT: Use 2D array to group block versionsAlan Wu2021-10-201-0/+5
| | | | | For deferred compilation, we sometimes want to care about the order of the block versions. Use an array instead of a linked list to do that.
* darray: fix strict aliasing issueAlan Wu2021-10-201-2/+6
|
* Add rb_darray_makeAlan Wu2021-10-201-6/+35
|
* darray: fix buffer size calculation for element with strict alignmentAlan Wu2021-10-201-19/+23
|
* Tie lifetime of uJIT blocks to iseqsAlan Wu2021-10-201-0/+141
* Tie lifetime of uJIT blocks to iseqs Blocks weren't being freed when iseqs are collected. * Add rb_dary. Use it for method dependency table * Keep track of blocks per iseq Remove global version_tbl * Block version bookkeeping fix * dary -> darray * free ujit_blocks * comment about size of ujit_blocks