]>
Commit | Line | Data |
---|---|---|
eb6c977b | 1 | diff -urN cairo-0.9.2.orig/src/cairo-cache.c cairo-0.9.2/src/cairo-cache.c |
2 | --- cairo-0.9.2.orig/src/cairo-cache.c 2005-08-17 18:28:20.765530192 +0200 | |
3 | +++ cairo-0.9.2/src/cairo-cache.c 2005-08-17 18:29:26.158588936 +0200 | |
4 | @@ -512,7 +512,7 @@ | |
5 | { | |
6 | /* This is the djb2 hash. */ | |
7 | unsigned long hash = 5381; | |
8 | - while (*c) | |
9 | + while (c && *c) | |
10 | hash = ((hash << 5) + hash) + *c++; | |
11 | return hash; | |
12 | } | |
13 | diff -urN cairo-0.9.2.orig/src/cairo-ft-font.c cairo-0.9.2/src/cairo-ft-font.c | |
14 | --- cairo-0.9.2.orig/src/cairo-ft-font.c 2005-08-17 18:28:20.816522440 +0200 | |
15 | +++ cairo-0.9.2/src/cairo-ft-font.c 2005-08-17 18:33:08.097849040 +0200 | |
16 | @@ -248,8 +248,8 @@ | |
17 | ||
18 | static void | |
19 | _cairo_ft_unscaled_font_init_key (cairo_ft_unscaled_font_t *key, | |
20 | - char *filename, | |
21 | - int id) | |
22 | + char *filename, | |
23 | + int id) | |
24 | { | |
25 | unsigned long hash; | |
26 | ||
27 | @@ -290,22 +290,25 @@ | |
28 | int id, | |
29 | FT_Face face) | |
30 | { | |
31 | - char *filename_copy = NULL; | |
32 | - | |
33 | - if (filename) { | |
34 | - filename_copy = strdup (filename); | |
35 | - if (filename_copy == NULL) | |
36 | - return CAIRO_STATUS_NO_MEMORY; | |
37 | - } | |
38 | - | |
39 | - _cairo_ft_unscaled_font_init_key (unscaled, filename_copy, id); | |
40 | + _cairo_unscaled_font_init (&unscaled->base, | |
41 | + &cairo_ft_unscaled_font_backend); | |
42 | ||
43 | if (face) { | |
44 | - unscaled->from_face = 1; | |
45 | + unscaled->from_face = TRUE; | |
46 | unscaled->face = face; | |
47 | + unscaled->filename = NULL; | |
48 | + unscaled->id = 0; | |
49 | } else { | |
50 | - unscaled->from_face = 0; | |
51 | + char *filename_copy; | |
52 | + | |
53 | + unscaled->from_face = FALSE; | |
54 | unscaled->face = NULL; | |
55 | + | |
56 | + filename_copy = strdup (filename); | |
57 | + if (filename_copy == NULL) | |
58 | + return CAIRO_STATUS_NO_MEMORY; | |
59 | + | |
60 | + _cairo_ft_unscaled_font_init_key (unscaled, filename_copy, id); | |
61 | } | |
62 | ||
63 | unscaled->have_scale = 0; | |
64 | @@ -313,9 +316,6 @@ | |
65 | ||
66 | unscaled->faces = NULL; | |
67 | ||
68 | - _cairo_unscaled_font_init (&unscaled->base, | |
69 | - &cairo_ft_unscaled_font_backend); | |
70 | - | |
71 | return CAIRO_STATUS_SUCCESS; | |
72 | } | |
73 |