fix gc infinite loop w/ self-referencing frames