OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2012 Google, Inc. | 2 * Copyright © 2012 Google, Inc. |
3 * | 3 * |
4 * This is part of HarfBuzz, a text shaping library. | 4 * This is part of HarfBuzz, a text shaping library. |
5 * | 5 * |
6 * Permission is hereby granted, without written agreement and without | 6 * Permission is hereby granted, without written agreement and without |
7 * license or royalty fees, to use, copy, modify, and distribute this | 7 * license or royalty fees, to use, copy, modify, and distribute this |
8 * software and its documentation for any purpose, provided that the | 8 * software and its documentation for any purpose, provided that the |
9 * above copyright notice and the following two paragraphs appear in | 9 * above copyright notice and the following two paragraphs appear in |
10 * all copies of this software. | 10 * all copies of this software. |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 break; | 93 break; |
94 else | 94 else |
95 p = end + 1; | 95 p = end + 1; |
96 } | 96 } |
97 | 97 |
98 if (!hb_atomic_ptr_cmpexch (&static_shapers, NULL, shapers)) { | 98 if (!hb_atomic_ptr_cmpexch (&static_shapers, NULL, shapers)) { |
99 free (shapers); | 99 free (shapers); |
100 goto retry; | 100 goto retry; |
101 } | 101 } |
102 | 102 |
103 #ifdef HAVE_ATEXIT | 103 #ifdef HB_USE_ATEXIT |
104 atexit (free_static_shapers); /* First person registers atexit() callback. *
/ | 104 atexit (free_static_shapers); /* First person registers atexit() callback. *
/ |
105 #endif | 105 #endif |
106 } | 106 } |
107 | 107 |
108 return shapers; | 108 return shapers; |
109 } | 109 } |
OLD | NEW |