/*! \brief Get a smob for a page. * \ingroup guile_c_iface * \par Function Description * Create a new smob representing \a page. * * \param page #PAGE to create a smob for. * \return a smob representing \a page. */ SCM edascm_from_page (PAGE *page) { SCM smob; SCM_NEWSMOB (smob, geda_smob_tag, page); SCM_SET_SMOB_FLAGS (smob, GEDA_SMOB_PAGE); /* Set weak reference */ s_page_weak_ref (page, smob_weakref_notify, smob); return smob; }
/*! \brief Get a smob for a page. * \ingroup guile_c_iface * \par Function Description * Create a new smob representing \a page. * * \param page #PAGE to create a smob for. * \return a smob representing \a page. */ SCM edascm_from_page (PAGE *page) { SCM smob = smob_cache_lookup (page); if (EDASCM_PAGEP (smob)) { return smob; } SCM_NEWSMOB (smob, geda_smob_tag, page); SCM_SET_SMOB_FLAGS (smob, GEDA_SMOB_PAGE); /* Set weak reference */ s_page_weak_ref (page, smob_weakref_notify, unpack_as_pointer (smob)); smob_cache_add (page, smob); return smob; }