static ENUM_PTRS_WITH(font_cid1_enum_ptrs, gs_font_cid1 *pfcid1) { if (index < st_cid_system_info_num_ptrs) return ENUM_USING(st_cid_system_info, &pfcid1->cidata.CIDSystemInfo, sizeof(st_cid_system_info), index); ENUM_PREFIX(st_gs_font_base, st_cid_system_info_num_ptrs); }
static ENUM_PTRS_WITH(font_cid0_enum_ptrs, gs_font_cid0 *pfcid0) { index -= 2; if (index < st_gs_font_cid_data_num_ptrs) return ENUM_USING(st_gs_font_cid_data, &pfcid0->cidata.common, sizeof(gs_font_cid_data), index); ENUM_PREFIX(st_gs_font_base, st_gs_font_cid_data_num_ptrs); }
static ENUM_PTRS_WITH(font_cid2_enum_ptrs, gs_font_cid2 *pfcid2) { if (index < st_gs_font_cid2_own_ptrs) ENUM_PTR(0, gs_font_cid2, subst_CID_on_WMode); if (index < st_gs_font_cid_data_num_ptrs + st_gs_font_cid2_own_ptrs) return ENUM_USING(st_gs_font_cid_data, &pfcid2->cidata.common, sizeof(gs_font_cid_data), index - st_gs_font_cid2_own_ptrs); ENUM_PREFIX(st_gs_font_type42, st_gs_font_cid_data_num_ptrs + st_gs_font_cid2_own_ptrs); }
static ENUM_PTRS_BEGIN(device_rop_texture_enum_ptrs) { if (index < st_device_color_max_ptrs) { gs_ptr_type_t ptype = ENUM_SUPER_ELT(gx_device_rop_texture, st_device_color, texture, 0); if (ptype) return ptype; return ENUM_OBJ(NULL); /* don't stop early */ } ENUM_PREFIX(st_device_forward, st_device_color_max_ptrs); } ENUM_PTRS_END
/* GC procedures */ static ENUM_PTRS_BEGIN(pattern2_instance_enum_ptrs) { if (index < st_pattern2_template_max_ptrs) { gs_ptr_type_t ptype = ENUM_SUPER_ELT(gs_pattern2_instance_t, st_pattern2_template, templat, 0); if (ptype) return ptype; return ENUM_OBJ(NULL); /* don't stop early */ } ENUM_PREFIX(st_pattern_instance, st_pattern2_template_max_ptrs); }
/* GC procedures */ static ENUM_PTRS_WITH(device_mask_clip_enum_ptrs, gx_device_mask_clip *mcdev) { if (index < st_gx_strip_bitmap_max_ptrs) { return ENUM_USING(st_gx_strip_bitmap, &mcdev->tiles, sizeof(mcdev->tiles), index); } index -= st_gx_strip_bitmap_max_ptrs; if (index < st_device_memory_max_ptrs) { return ENUM_USING(st_device_memory, &mcdev->mdev, sizeof(mcdev->mdev), index); } ENUM_PREFIX(st_device_forward, st_device_memory_max_ptrs); }