Changeset 2998

Show
Ignore:
Timestamp:
02/17/03 23:54:31 (6 years ago)
Author:
miyoshi
Message:

(set_font_info): Clear plf->fontip.
Free fontp->name and fontp->full_name, if they are not NULL.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • work/cvs2svn/src/ChangeLog.Meadow

    r2996 r2998  
    66        * mw32font.c (mw32_lf_equal): Compare font requests instead of 
    77        font infos. 
     8        (set_font_info): Clear plf->fontip. 
     9        Free fontp->name and fontp->full_name, if they are not NULL. 
    810 
    911        * mw32term.c (mw32_free_frame_resources): Free resources of 
  • work/cvs2svn/src/mw32font.c

    r2996 r2998  
    631631 
    632632static void 
    633 set_font_info(MW32LogicalFont *plf, int c) 
     633set_font_info (MW32LogicalFont *plf, int c) 
    634634{ 
    635635  int size; 
     
    638638 
    639639  if (!plf->fontip) 
    640     plf->fontip = (struct font_info *) xmalloc(sizeof (struct font_info)); 
     640    { 
     641      plf->fontip = (struct font_info *) xmalloc(sizeof (struct font_info)); 
     642      bzero (plf->fontip, sizeof (struct font_info)); 
     643    } 
    641644  fontp = plf->fontip; 
    642645 
     
    645648  fontp->font_idx = plf->idx; 
    646649 
    647   fontp->name = (char *) xmalloc (size); 
    648   fontp->full_name = (char *) xmalloc (size); 
    649   memcpy (fontp->name, plf->pfr->name, size); 
    650   memcpy (fontp->full_name, plf->pfr->name, size); 
     650  if (fontp->name == 0 || strcmp (fontp->name, plf->pfr->name) != 0) 
     651    { 
     652      if (fontp->name) 
     653        xfree (fontp->name); 
     654      fontp->name = (char *) xmalloc (size); 
     655      memcpy (fontp->name, plf->pfr->name, size); 
     656    } 
     657 
     658  if (fontp->full_name == 0 || strcmp (fontp->full_name, plf->pfr->name) != 0) 
     659    { 
     660      if (fontp->full_name) 
     661        xfree (fontp->full_name); 
     662      fontp->full_name = (char *) xmalloc (size); 
     663      memcpy (fontp->full_name, plf->pfr->name, size); 
     664    } 
    651665 
    652666  fontp->size = FONT_WIDTH(plf);