[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 *** scanfont.c 1999/12/27 00:34:02 1.1 2 --- scanfont.c 1999/12/27 00:35:34 3 *************** 4 *** 2234,2239 **** 5 --- 2234,2241 ---- 6 /* point to name and search for leading blanks */ 7 nameP= FontP->FontFileName.data.nameP; 8 namelen = FontP->FontFileName.len; 9 + if (namelen > (128-1) ) /* prevent getting out of filename[] */ 10 + namelen = (128-1); 11 while (nameP[0] == ' ') { 12 nameP++; 13 namelen--; 14 *** paths.c 1999/12/27 00:37:01 1.1 15 --- paths.c 1999/12/27 00:37:43 16 *************** 17 *** 583,589 **** 18 CONCAT(before, r); 19 r = before; 20 } 21 ! else 22 r->context = after->context; 23 if (after != NULL) 24 CONCAT(r, after); 25 --- 583,589 ---- 26 CONCAT(before, r); 27 r = before; 28 } 29 ! else if (after != NULL) 30 r->context = after->context; 31 if (after != NULL) 32 CONCAT(r, after); 33 *** type1.c 1999/12/27 00:38:16 1.1 34 --- type1.c 1999/12/27 01:08:02 35 *************** 36 *** 399,412 **** 37 /* ADJUST STEM WIDTHS */ 38 /**********************/ 39 40 ! widthdiff = 0.0; 41 42 /* Find standard stem with smallest width difference from this stem */ 43 if (stems[stemno].vertical) { /* vertical stem */ 44 if (blues->StdVW != 0) /* there is an entry for StdVW */ 45 widthdiff = blues->StdVW - stemwidth; 46 for (i = 0; i < blues->numStemSnapV; ++i) { /* now look at StemSnapV */ 47 ! if (blues->StemSnapV[i] - stemwidth < widthdiff) 48 /* this standard width is the best match so far for this stem */ 49 widthdiff = blues->StemSnapV[i] - stemwidth; 50 } 51 --- 399,414 ---- 52 /* ADJUST STEM WIDTHS */ 53 /**********************/ 54 55 ! /* a big value to not compete with StemSnap */ 56 ! /* if there is no StemSnap it will be caught later */ 57 ! widthdiff = onepixel*2; 58 59 /* Find standard stem with smallest width difference from this stem */ 60 if (stems[stemno].vertical) { /* vertical stem */ 61 if (blues->StdVW != 0) /* there is an entry for StdVW */ 62 widthdiff = blues->StdVW - stemwidth; 63 for (i = 0; i < blues->numStemSnapV; ++i) { /* now look at StemSnapV */ 64 ! if ( FABS(blues->StemSnapV[i] - stemwidth) < FABS(widthdiff) ) 65 /* this standard width is the best match so far for this stem */ 66 widthdiff = blues->StemSnapV[i] - stemwidth; 67 } 68 *************** 69 *** 414,420 **** 70 if (blues->StdHW != 0) /* there is an entry for StdHW */ 71 widthdiff = blues->StdHW - stemwidth; 72 for (i = 0; i < blues->numStemSnapH; ++i) { /* now look at StemSnapH */ 73 ! if (blues->StemSnapH[i] - stemwidth < widthdiff) 74 /* this standard width is the best match so far for this stem */ 75 widthdiff = blues->StemSnapH[i] - stemwidth; 76 } 77 --- 416,422 ---- 78 if (blues->StdHW != 0) /* there is an entry for StdHW */ 79 widthdiff = blues->StdHW - stemwidth; 80 for (i = 0; i < blues->numStemSnapH; ++i) { /* now look at StemSnapH */ 81 ! if ( FABS(blues->StemSnapH[i] - stemwidth) < FABS(widthdiff) ) 82 /* this standard width is the best match so far for this stem */ 83 widthdiff = blues->StemSnapH[i] - stemwidth; 84 } 85 *** t1io.c 2000/01/01 00:41:44 1.1 86 --- t1io.c 2000/01/01 01:23:38 87 *************** 88 *** 78,83 **** 89 --- 78,86 ---- 90 /* Our single FILE structure and buffer for this package */ 91 STATIC F_FILE TheFile; 92 STATIC unsigned char TheBuffer[F_BUFSIZ]; 93 + 94 + /* the size of the file we read */ 95 + int T1FileSize; 96 97 /* Our routines */ 98 F_FILE *T1Open(), *T1Eexec(); 99 *************** 100 *** 118,123 **** 101 --- 121,127 ---- 102 of->flags = 0; 103 of->error = 0; 104 haveextrach = 0; 105 + T1FileSize = 0; 106 return &TheFile; 107 } /* end Open */ 108 109 *************** 110 *** 196,202 **** 111 --- 200,212 ---- 112 int T1Close(f) /* Close the file */ 113 F_FILE *f; /* Stream descriptor */ 114 { 115 + int rc; 116 + 117 if (f->b_base == NULL) return 0; /* already closed */ 118 + 119 + while ( (rc = read(f->fd, f->b_base, F_BUFSIZ)) >0) 120 + T1FileSize += rc; /* count the rest of the file */ 121 + 122 f->b_base = NULL; /* no valid stream */ 123 return close(f->fd); 124 } /* end Close */ 125 *************** 126 *** 381,386 **** 127 --- 391,397 ---- 128 } 129 } 130 f->b_ptr = f->b_base; 131 + T1FileSize += rc; /* remember how many bytes we have */ 132 if (Decrypt) rc = T1Decrypt(f->b_base, rc); 133 return rc; 134 } /* end Fill */ 135 *** t1stdio.h 2000/01/01 00:43:38 1.1 136 --- t1stdio.h 2000/01/01 01:24:19 137 *************** 138 *** 73,78 **** 139 --- 73,79 ---- 140 141 extern FILE *T1Open(), *T1eexec(); 142 extern int T1Close(), T1Ungetc(), T1Read(); 143 + extern int T1FileSize; 144 145 #undef fclose 146 #undef fopen 147 *** fontfcn.c 2000/01/01 00:07:54 1.1 148 --- fontfcn.c 2000/01/01 01:36:02 149 *************** 150 *** 57,62 **** 151 --- 57,63 ---- 152 #endif 153 #include "t1imager.h" 154 #include "util.h" 155 + #include "t1stdio.h" 156 #ifdef BUILDCID 157 #include "range.h" 158 #include "fontmisc.h" 159 *************** 160 *** 300,333 **** 161 resetFont(env); 162 /* This will load the font into the FontP */ 163 rcode = scan_font(FontP); 164 ! if (rcode == SCAN_OUT_OF_MEMORY) { 165 /* free the memory and start again */ 166 #ifdef BUILDCID 167 /* xfree(vm_base); */ 168 #else 169 xfree(vm_base); 170 #endif 171 if (!(initFont(vm_size * 2))) { 172 /* we are really out of memory */ 173 return(SCAN_OUT_OF_MEMORY); 174 } 175 resetFont(env); 176 rcode = scan_font(FontP); 177 - #ifdef BUILDCID 178 - /* only double the memory twice, then report error */ 179 - if (rcode == SCAN_OUT_OF_MEMORY) { 180 - /* free the memory and start again */ 181 - /* xfree(vm_base) */ 182 - if (!(initFont(vm_size * 2))) { 183 - /* we are really out of memory */ 184 - return(SCAN_OUT_OF_MEMORY); 185 - } 186 - resetFont(env); 187 - rcode = scan_font(FontP); 188 - } 189 - #else 190 - /* only double the memory once, then report error */ 191 - #endif 192 } 193 return(rcode); 194 } 195 --- 301,342 ---- 196 resetFont(env); 197 /* This will load the font into the FontP */ 198 rcode = scan_font(FontP); 199 ! if (rcode != SCAN_OUT_OF_MEMORY) 200 ! return rcode; 201 ! 202 ! if (T1FileSize > VM_SIZE) { 203 ! /* use the file size as estimation */ 204 ! 205 /* free the memory and start again */ 206 #ifdef BUILDCID 207 /* xfree(vm_base); */ 208 #else 209 xfree(vm_base); 210 #endif 211 + if (!(initFont(T1FileSize))) { 212 + /* we are really out of memory */ 213 + return(SCAN_OUT_OF_MEMORY); 214 + } 215 + resetFont(env); 216 + rcode = scan_font(FontP); 217 + if (rcode != SCAN_OUT_OF_MEMORY) 218 + return rcode; 219 + } 220 + 221 + /* if still not enough, increase up to maximum */ 222 + while (rcode == SCAN_OUT_OF_MEMORY 223 + && vm_size <= VM_SIZE_MAX/2 ) { 224 + #ifdef BUILDCID 225 + /* xfree(vm_base); */ 226 + #else 227 + xfree(vm_base); 228 + #endif 229 if (!(initFont(vm_size * 2))) { 230 /* we are really out of memory */ 231 return(SCAN_OUT_OF_MEMORY); 232 } 233 resetFont(env); 234 rcode = scan_font(FontP); 235 } 236 return(rcode); 237 } 238 *** util.h 2000/01/01 00:40:11 1.1 239 --- util.h 2000/01/01 01:29:18 240 *************** 241 *** 83,88 **** 242 --- 83,92 ---- 243 #else 244 #define VM_SIZE (50*1024) 245 #endif 246 + 247 + /* this is the maximal permitted memory size */ 248 + #define VM_SIZE_MAX (1024*1024) 249 + 250 /***================================================================***/ 251 252 #ifndef MIN
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |