[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem report #16
From: |
Dan Nicolaescu |
Subject: |
Re: Problem report #16 |
Date: |
Wed, 12 Apr 2006 10:41:27 -0700 |
Dan Nicolaescu <address@hidden> writes:
> CID: 16
> Checker: FORWARD_NULL (help)
> File: emacs/src/fontset.c
> Function: fs_load_font
> Description: Variable "face" tracked as NULL was dereferenced.
>
> Event var_compare_op: Added "face" due to comparison "face != 0"
> Also see events: [var_deref_op]
> At conditional (1): "face != 0" taking false path
>
> 667 if (face)
> 668 id = face->fontset;
>
> At conditional (2): "id < 0" taking true path
>
> 669 if (id < 0)
> 670 fontset = Qnil;
> 671 else
> 672 fontset = FONTSET_FROM_ID (id);
> 673
>
> At conditional (3): "fontset != Qnil" taking true path
> At conditional (4): "(fontset & -8)->parent != Qnil" taking true path
>
> 674 if (!NILP (fontset)
> 675 && !BASE_FONTSET_P (fontset))
> 676 {
> 677 elt = FONTSET_REF_VIA_BASE (fontset, c);
>
> At conditional (5): "elt != Qnil" taking true path
>
> 678 if (!NILP (elt))
> 679 {
> 680 /* A suitable face for C is already recorded, which
means
> 681 that a proper font is already loaded. */
> 682 int face_id = XINT (elt);
> 683
> 684 xassert (face_id == face->id);
>
> At conditional (6): "face_id < ((f)->face_cache)->used" taking false path
>
> 685 face = FACE_FROM_ID (f, face_id);
>
> Event var_deref_op: Variable "face" tracked as NULL was dereferenced.
> Also see events: [var_compare_op]
>
> 686 return (*get_font_info_func) (f, face->font_info_id);
> 687 }
This problem could happen if fs_load_font was called with face=NULL
and id>0. Can that happen?