/[guile]/guile/guile-core/libguile/smob.c
ViewVC logotype

Diff of /guile/guile-core/libguile/smob.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.50 by mvo, Sun Nov 25 15:21:06 2001 UTC revision 1.51 by mvo, Mon Feb 11 18:06:49 2002 UTC
# Line 107  scm_free0 (SCM ptr SCM_UNUSED) Line 107  scm_free0 (SCM ptr SCM_UNUSED)
107  size_t  size_t
108  scm_smob_free (SCM obj)  scm_smob_free (SCM obj)
109  {  {
110    scm_must_free ((char *) SCM_CELL_WORD_1 (obj));    long n = SCM_SMOBNUM (obj);
111    return scm_smobs[SCM_SMOBNUM (obj)].size;    if (scm_smobs[n].size > 0)
112        scm_gc_free ((void *) SCM_CELL_WORD_1 (obj),
113                     scm_smobs[n].size, SCM_SMOBNAME (n));
114      return 0;
115  }  }
116    
117  /* {Print}  /* {Print}
# Line 457  scm_make_smob (scm_t_bits tc) Line 460  scm_make_smob (scm_t_bits tc)
460    long n = SCM_TC2SMOBNUM (tc);    long n = SCM_TC2SMOBNUM (tc);
461    size_t size = scm_smobs[n].size;    size_t size = scm_smobs[n].size;
462    scm_t_bits data = (size > 0    scm_t_bits data = (size > 0
463                       ? (scm_t_bits) scm_must_malloc (size, SCM_SMOBNAME (n))                       ? (scm_t_bits) scm_gc_malloc (size, SCM_SMOBNAME (n))
464                       : 0);                       : 0);
465    return scm_alloc_cell (tc, data);    return scm_alloc_cell (tc, data);
466  }  }

Legend:
Removed from v.1.50  
changed lines
  Added in v.1.51

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26