Nicholas Clark wrote ..
> In MVM_hll_set_config(), the call to MVM_string_utf8_decode() inside
> check_config_key() causes allocation, which means that it can cause GC
> runs. Which can mean that the object pointed to by config_hash can move.
>
Indeed.
> 1) Is the attached patch the correct way
Nicholas Clark wrote ..
> I believe that a write barrier is missing in MVM_sc_get_sc(). Patch attached.
>
Agree with analysis and fix. Applied, thanks!
> This was really really messy to figure out. The bug manifests as a SEGV in
> process_worklist because a pointer to an object is 0x6. Clearly n
Nicholas Clark wrote ..
> I believe that MVM_file_set_encoding() needs to root oshandle (patch attached)
> as MVM_string_find_encoding() can allocate and hence can cause a GC run.
>
Patch applied; thanks.
> There are two other uses of MVM_string_find_encoding(). One is:
>
> /* At least find
The first thing after compiling the setting on Rakudo is this:
/home/nicholas/Sandpit/moar-g/bin/moar
--libpath=/home/nicholas/Sandpit/moar-g/languages/nqp/lib perl6.moarvm
--target=mbc --output=lib/Test.moarvm lib/Test.pm
It can SEGV. The problem seems to be that it's writing an i64 (specifica
Nicholas Clark wrote ..
> The first thing after compiling the setting on Rakudo is this:
>
> /home/nicholas/Sandpit/moar-g/bin/moar
> --libpath=/home/nicholas/Sandpit/moar-g/languages/nqp/lib
> perl6.moarvm --target=mbc --output=lib/Test.moarvm lib/Test.pm
>
> It can SEGV. The problem seems to