struct nff * wfFontObjectCache:: Rf2Font(struct nfrf *rf) { struct nff *f = NULL; struct wfListElement *tmp = head; for (; tmp; tmp = tmp->next) { struct font_store *ele = (struct font_store *) tmp->item; // We know that this Font object was created by us. So we can // snoop into its implementation to call implementation specific // methods. cfImpl *oimpl = cf2cfImpl(ele->f); FontObject *fob = (FontObject *)oimpl->object; if (fob->isRfExist(rf)) { f = ele->f; nff_addRef((struct nff *)f, NULL); break; } } return f; }