PHP Classes

File: application/libraries/dompdf/lib/ttf2ufm/src/app/X11/t1-xf86.334.patch

Recommend this page to a friend!
  Classes of harold rita   PHP Thesis Proposal Hub   application/libraries/dompdf/lib/ttf2ufm/src/app/X11/t1-xf86.334.patch   Download  
File: application/libraries/dompdf/lib/ttf2ufm/src/app/X11/t1-xf86.334.patch
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: PHP Thesis Proposal Hub
Store and publish research thesis documents
Author: By
Last change:
Date: 6 years ago
Size: 6,130 bytes
 

Contents

Class file image Download
*** fontfcn.c 2000/01/02 18:55:56 1.1 --- fontfcn.c 2000/01/02 19:00:17 *************** *** 33,38 **** --- 33,39 ---- #include <string.h> #include "t1imager.h" #include "util.h" + #include "t1stdio.h" #include "fontfcn.h" #include "fontmisc.h" *************** *** 117,132 **** resetFont(env); /* This will load the font into the FontP */ rcode = scan_font(FontP); ! if (rcode == SCAN_OUT_OF_MEMORY) { /* free the memory and start again */ xfree(vm_base); if (!(initFont(vm_size * 2))) { /* we are really out of memory */ return(SCAN_OUT_OF_MEMORY); } resetFont(env); rcode = scan_font(FontP); - /* only double the memory once, then report error */ } return(rcode); } --- 118,151 ---- resetFont(env); /* This will load the font into the FontP */ rcode = scan_font(FontP); ! if (rcode != SCAN_OUT_OF_MEMORY) ! return rcode; ! ! if (T1FileSize > VM_SIZE) { ! /* use the file size as estimation */ ! /* free the memory and start again */ xfree(vm_base); + if (!(initFont(T1FileSize))) { + /* we are really out of memory */ + return(SCAN_OUT_OF_MEMORY); + } + resetFont(env); + rcode = scan_font(FontP); + if (rcode != SCAN_OUT_OF_MEMORY) + return rcode; + } + + /* if still not enough, increase up to maximum */ + while (rcode == SCAN_OUT_OF_MEMORY + && vm_size <= VM_SIZE_MAX/2 ) { + xfree(vm_base); if (!(initFont(vm_size * 2))) { /* we are really out of memory */ return(SCAN_OUT_OF_MEMORY); } resetFont(env); rcode = scan_font(FontP); } return(rcode); } *** paths.c 2000/01/02 18:55:56 1.1 --- paths.c 2000/01/02 18:56:27 *************** *** 584,590 **** CONCAT(before, r); r = before; } ! else r->context = after->context; if (after != NULL) CONCAT(r, after); --- 584,590 ---- CONCAT(before, r); r = before; } ! else if (after != NULL) r->context = after->context; if (after != NULL) CONCAT(r, after); *** scanfont.c 2000/01/02 18:55:56 1.1 --- scanfont.c 2000/01/02 18:56:26 *************** *** 1383,1388 **** --- 1383,1390 ---- /* point to name and search for leading blanks */ nameP= FontP->FontFileName.data.nameP; namelen = FontP->FontFileName.len; + if (namelen > (128-1) ) /* prevent getting out of filename[] */ + namelen = (128-1); while (nameP[0] == ' ') { nameP++; namelen--; *** t1io.c 2000/01/02 18:55:56 1.1 --- t1io.c 2000/01/02 18:56:32 *************** *** 54,59 **** --- 54,62 ---- /* Our single FILE structure and buffer for this package */ STATIC F_FILE TheFile; STATIC unsigned char TheBuffer[F_BUFSIZ]; + + /* the size of the file we read */ + int T1FileSize; /* Our routines */ F_FILE *T1Open(), *T1Eexec(); *************** *** 87,92 **** --- 90,96 ---- of->flags = 0; of->error = 0; haveextrach = 0; + T1FileSize = 0; return &TheFile; } /* end Open */ *************** *** 165,171 **** --- 169,181 ---- int T1Close(f) /* Close the file */ F_FILE *f; /* Stream descriptor */ { + int rc; + if (f->b_base == NULL) return 0; /* already closed */ + + while ( (rc = read(f->fd, f->b_base, F_BUFSIZ)) >0) + T1FileSize += rc; /* count the rest of the file */ + f->b_base = NULL; /* no valid stream */ return close(f->fd); } /* end Close */ *************** *** 289,294 **** --- 299,305 ---- } } f->b_ptr = f->b_base; + T1FileSize += rc; /* remember how many bytes we have */ if (Decrypt) rc = T1Decrypt(f->b_base, rc); return rc; } /* end Fill */ *** type1.c 2000/01/02 18:55:56 1.1 --- type1.c 2000/01/02 18:56:27 *************** *** 365,378 **** /* ADJUST STEM WIDTHS */ /**********************/ ! widthdiff = 0.0; /* Find standard stem with smallest width difference from this stem */ if (stems[stemno].vertical) { /* vertical stem */ if (blues->StdVW != 0) /* there is an entry for StdVW */ widthdiff = blues->StdVW - stemwidth; for (i = 0; i < blues->numStemSnapV; ++i) { /* now look at StemSnapV */ ! if (blues->StemSnapV[i] - stemwidth < widthdiff) /* this standard width is the best match so far for this stem */ widthdiff = blues->StemSnapV[i] - stemwidth; } --- 365,380 ---- /* ADJUST STEM WIDTHS */ /**********************/ ! /* a big value to not compete with StemSnap */ ! /* if there is no StemSnap it will be caught later */ ! widthdiff = onepixel*2; /* Find standard stem with smallest width difference from this stem */ if (stems[stemno].vertical) { /* vertical stem */ if (blues->StdVW != 0) /* there is an entry for StdVW */ widthdiff = blues->StdVW - stemwidth; for (i = 0; i < blues->numStemSnapV; ++i) { /* now look at StemSnapV */ ! if ( FABS(blues->StemSnapV[i] - stemwidth) < FABS(widthdiff) ) /* this standard width is the best match so far for this stem */ widthdiff = blues->StemSnapV[i] - stemwidth; } *************** *** 380,386 **** if (blues->StdHW != 0) /* there is an entry for StdHW */ widthdiff = blues->StdHW - stemwidth; for (i = 0; i < blues->numStemSnapH; ++i) { /* now look at StemSnapH */ ! if (blues->StemSnapH[i] - stemwidth < widthdiff) /* this standard width is the best match so far for this stem */ widthdiff = blues->StemSnapH[i] - stemwidth; } --- 382,388 ---- if (blues->StdHW != 0) /* there is an entry for StdHW */ widthdiff = blues->StdHW - stemwidth; for (i = 0; i < blues->numStemSnapH; ++i) { /* now look at StemSnapH */ ! if ( FABS(blues->StemSnapH[i] - stemwidth) < FABS(widthdiff) ) /* this standard width is the best match so far for this stem */ widthdiff = blues->StemSnapH[i] - stemwidth; }