ztype0_adjust_FDepVector(gs_font_type0 * pfont)
{
    gs_memory_t *mem = pfont->memory;
    /* HACK: We know the font was allocated by the interpreter. */
    gs_ref_memory_t *imem = (gs_ref_memory_t *)mem;
    gs_font **pdep = pfont->data.FDepVector;
    ref newdep;
    uint fdep_size = pfont->data.fdep_size;
    ref *prdep;
    uint i;
    int code = gs_alloc_ref_array(imem, &newdep, a_readonly, fdep_size,
                                  "ztype0_adjust_matrix");

    if (code < 0)
        return code;
    for (prdep = newdep.value.refs, i = 0; i < fdep_size; i++, prdep++) {
        const ref *pdict = pfont_dict(pdep[i]);

        ref_assign(prdep, pdict);
        r_set_attrs(prdep, imemory_new_mask(imem));
    }
    /*
     * The FDepVector is an existing key in the parent's dictionary,
     * so it's safe to pass NULL as the dstack pointer to dict_put_string.
     */
    return dict_put_string(pfont_dict(pfont), "FDepVector", &newdep, NULL);
}
ztype0_adjust_FDepVector(gs_font_type0 * pfont)
{
    gs_memory_t *mem = pfont->memory;
     
    gs_ref_memory_t *imem = (gs_ref_memory_t *)mem;
    gs_font **pdep = pfont->data.FDepVector;
    ref newdep;
    uint fdep_size = pfont->data.fdep_size;
    ref *prdep;
    uint i;
    int code = gs_alloc_ref_array(imem, &newdep, a_readonly, fdep_size,
                                  "ztype0_adjust_matrix");

    if (code < 0)
        return code;
    for (prdep = newdep.value.refs, i = 0; i < fdep_size; i++, prdep++) {
        const ref *pdict = pfont_dict(pdep[i]);

        ref_assign(prdep, pdict);
        r_set_attrs(prdep, imemory_new_mask(imem));
    }
     
    return dict_put_string(pfont_dict(pfont), "FDepVector", &newdep, NULL);
}