void ponyint_gc_markactor(pony_ctx_t* ctx, pony_actor_t* actor) { if(actor == ctx->current) return; gc_t* gc = ponyint_actor_gc(ctx->current); actorref_t* aref = ponyint_actormap_getactor(&gc->foreign, actor); mark_remote_actor(ctx, gc, aref); }
actorref_t* ponyint_actormap_getorput(actormap_t* map, pony_actor_t* actor, uint32_t mark) { size_t index = HASHMAP_UNKNOWN; actorref_t* aref = ponyint_actormap_getactor(map, actor, &index); if(aref != NULL) return aref; aref = actorref_alloc(actor, mark); ponyint_actormap_putindex(map, aref, index); return aref; }