This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

are there memory leaks in this?


Hi,

Could someone tell me if there are possible memory leaks in the
following code, which is the beginning of a C function?

SCM c_vo_init(SCM args)
{
  SCM a, s_winid, s_title, s_wid, s_hgt, s_wwid, s_whgt,
    s_minx, s_maxx, s_miny, s_maxy, s_topm, s_rigm, s_botm, s_lefm,
    s_bg, s_fg, s_tagmask;
  char *title, *bg, *fg;
  
#ifdef DO_ASSERT
  SCM_ASSERT(scm_eq_p(scm_length(args), SCM_MAKINUM(18)), args, SCM_WNA, "vo-init");
#endif
  a = SCM_CAR(args);       args = SCM_CDR(args);
  s_winid = SCM_CAR(args); args = SCM_CDR(args);
  s_title = SCM_CAR(args); args = SCM_CDR(args);
  s_wid = SCM_CAR(args);   args = SCM_CDR(args);
  s_hgt = SCM_CAR(args);   args = SCM_CDR(args);
  s_wwid = SCM_CAR(args);  args = SCM_CDR(args);
  s_whgt = SCM_CAR(args);  args = SCM_CDR(args);
  s_minx = SCM_CAR(args);  args = SCM_CDR(args);
  s_maxx = SCM_CAR(args);  args = SCM_CDR(args);
  s_miny = SCM_CAR(args);  args = SCM_CDR(args);
  s_maxy = SCM_CAR(args);  args = SCM_CDR(args);
  s_topm = SCM_CAR(args);  args = SCM_CDR(args);
  s_rigm = SCM_CAR(args);  args = SCM_CDR(args);
  s_botm = SCM_CAR(args);  args = SCM_CDR(args);
  s_lefm = SCM_CAR(args);  args = SCM_CDR(args);
  s_bg = SCM_CAR(args);    args = SCM_CDR(args);
  s_fg = SCM_CAR(args);    args = SCM_CDR(args);
  s_tagmask = SCM_CAR(args);
...

I tried to use Rational's Purify to identify some memory leaks, but
found out that Purify doesn't work with QuickThreads. Has anyone had a
similar problem and solved it?

Thanks,
Aleks