1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-14 15:40:19 +02:00

Greg's smob patch

This commit is contained in:
Mikael Djurfeldt 1999-07-07 09:44:01 +00:00
parent 8ac40ce887
commit 23a621512f
25 changed files with 183 additions and 408 deletions

View file

@ -122,9 +122,6 @@ prinsrcprops (obj, port, pstate)
return 1;
}
static scm_smobfuns srcpropssmob =
{marksrcprops, freesrcprops, prinsrcprops, 0};
SCM
scm_make_srcprops (line, col, filename, copy, plist)
@ -134,7 +131,6 @@ scm_make_srcprops (line, col, filename, copy, plist)
SCM copy;
SCM plist;
{
register SCM ans;
register scm_srcprops *ptr;
SCM_DEFER_INTS;
if ((ptr = srcprops_freelist) != NULL)
@ -156,15 +152,11 @@ scm_make_srcprops (line, col, filename, copy, plist)
*(scm_srcprops **)&ptr[SRCPROPS_CHUNKSIZE - 1] = 0;
srcprops_freelist = (scm_srcprops *) &ptr[1];
}
SCM_NEWCELL (ans);
SCM_SETCAR (ans, scm_tc16_srcprops);
ptr->pos = SRCPROPMAKPOS (line, col);
ptr->fname = filename;
ptr->copy = copy;
ptr->plist = plist;
SCM_SETCDR (ans, (SCM) ptr);
SCM_ALLOW_INTS;
return ans;
SCM_RETURN_NEWSMOB (scm_tc16_srcprops, ptr);
}
@ -349,7 +341,8 @@ scm_set_source_property_x (obj, key, datum)
void
scm_init_srcprop ()
{
scm_tc16_srcprops = scm_newsmob (&srcpropssmob);
scm_tc16_srcprops = scm_make_smob_type_mfpe ("srcprops", 0,
marksrcprops, freesrcprops, prinsrcprops, NULL);
scm_source_whash = scm_make_weak_key_hash_table (SCM_MAKINUM (2047));
scm_i_filename = SCM_CAR (scm_sysintern ("filename", SCM_UNDEFINED));