#1990: GC bug with new embedding API
-----------------------+----------------------------------------------------
Reporter: nwellnhof | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: none | Version: 3.0.0
Severity: medium | Keywords:
Lang: | Patch:
Platform: |
-----------------------+----------------------------------------------------
I recently discovered a GC bug caused by the embedding API rewrite. It can
be easily triggered by manually setting a low GC threshold like 64K. The
problem is the following code sequence:
{{{
Parrot_api_load_bytecode_file (or Parrot_api_wrap_imcc_hack)
some other code that triggers a GC
Parrot_api_run_bytecode
}}}
The bytecode PMC returned by Parrot_api_load_bytecode_file and
Parrot_api_wrap_imcc_hack is an UnmanagedStruct, so constant PMCs from the
packfile (and maybe other things) don't get marked. These functions should
return a real PMC that properly marks referenced objects.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1990>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets