diff options
author | 2004-11-18 14:04:33 +0000 | |
---|---|---|
committer | 2004-11-18 14:04:33 +0000 | |
commit | efef687d5a5c02e73813d2995a9afaa2fa2446c2 (patch) | |
tree | 66cae37b2a44821538c81a7fd08e07367661eee1 /net-www/mozilla/files | |
parent | Removed insecure versions. (See GLSA 200411-26.) (diff) | |
download | historical-efef687d5a5c02e73813d2995a9afaa2fa2446c2.tar.gz historical-efef687d5a5c02e73813d2995a9afaa2fa2446c2.tar.bz2 historical-efef687d5a5c02e73813d2995a9afaa2fa2446c2.zip |
Update to enigmail 0.89.0 #64547. Add patch for freetype-2.1.8+ binary compatibility #59849. Switch from svg-libart to svg-cairo because the libart version we were using depends on the bad freetype APIs. Additionally we're using cairo in firefox so it's good to be in sync
Diffstat (limited to 'net-www/mozilla/files')
-rw-r--r-- | net-www/mozilla/files/digest-mozilla-1.7.3-r3 | 4 | ||||
-rw-r--r-- | net-www/mozilla/files/mozilla-1.7.3-4ft2.patch | 656 |
2 files changed, 660 insertions, 0 deletions
diff --git a/net-www/mozilla/files/digest-mozilla-1.7.3-r3 b/net-www/mozilla/files/digest-mozilla-1.7.3-r3 new file mode 100644 index 000000000000..8b10d98fa901 --- /dev/null +++ b/net-www/mozilla/files/digest-mozilla-1.7.3-r3 @@ -0,0 +1,4 @@ +MD5 15cb68da1d58f055f871b77ff655df77 mozilla-source-1.7.3.tar.bz2 29716200 +MD5 47ed5962d3d18f5792f805eff706cfbd mozilla-1.7.2-libart_lgpl.tar.bz2 102117 +MD5 5e8ced79811ce4986fc840de8d9fc938 ipc-1.1.1.tar.gz 102900 +MD5 a377f8296aa5013350a05085faa336b1 enigmail-0.89.0.tar.gz 332923 diff --git a/net-www/mozilla/files/mozilla-1.7.3-4ft2.patch b/net-www/mozilla/files/mozilla-1.7.3-4ft2.patch new file mode 100644 index 000000000000..18b80281e5bb --- /dev/null +++ b/net-www/mozilla/files/mozilla-1.7.3-4ft2.patch @@ -0,0 +1,656 @@ +This patch is from +https://bugzilla.mozilla.org/show_bug.cgi?id=234035#c65 to enable +linking against freetype-2.1.8+. It disables the experimental +freetype caching. I modified this patch slightly to apply to 1.7.3; +some things had moved around in the files since the original patch. + +Note this is the same patch as we apply to mozilla-firefox-1.0 + +15 Nov 2004 agriffis + +--- gfx/idl/nsIFreeType2.idl.agriffis 2004-04-15 21:09:33.000000000 -0400 ++++ gfx/idl/nsIFreeType2.idl 2004-11-15 13:29:05.120343408 -0500 +@@ -98,8 +98,6 @@ + { + + readonly attribute FT_Library library; +- readonly attribute FTC_Manager FTCacheManager; +- readonly attribute FTC_Image_Cache ImageCache; + + void doneFace(in FT_Face face); + void doneFreeType(in FT_Library lib); +@@ -114,17 +112,8 @@ + in FT_Long face_num, out FT_Face face); + void outlineDecompose(in FT_Outline_p outline, + in const_FT_Outline_Funcs_p funcs, in voidPtr p); ++ void setPixelSizes(in FT_Face face, in FT_UInt width, in FT_UInt height); + void setCharmap(in FT_Face face, in FT_CharMap charmap); +- void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc, +- in FT_UInt gindex, out FT_Glyph glyph); +- void managerLookupSize(in FTC_Manager manager, in FTC_Font font, +- out FT_Face face, out FT_Size size); +- void managerDone(in FTC_Manager manager); +- void managerNew(in FT_Library lib, in FT_UInt max_faces, +- in FT_UInt max_sizes, in FT_ULong max_bytes, +- in FTC_Face_Requester requester, in FT_Pointer req_data, +- out FTC_Manager manager); +- void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache); + /* #ifdef MOZ_SVG */ + void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix, + in FT_Vector_p delta); +--- gfx/src/ps/nsFontMetricsPS.h.agriffis 2003-04-22 12:25:09.000000000 -0400 ++++ gfx/src/ps/nsFontMetricsPS.h 2004-11-15 13:37:58.431267824 -0500 +@@ -320,7 +320,8 @@ + nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID; + nsCOMPtr<nsIFreeType2> mFt2; + PRUint16 mPixelSize; +- FTC_Image_Desc mImageDesc; ++ FT_Face mFace; ++ FT_Library mFreeTypeLibrary; + + + static PRBool AddUserPref(nsIAtom *aLang, const nsFont& aFont, +@@ -363,7 +364,8 @@ + protected: + nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry; + nsCOMPtr<nsIFreeType2> mFt2; +- FTC_Image_Desc mImageDesc; ++ FT_Face mFace; ++ FT_Library mFreeTypeLibrary; + }; + #endif + +--- gfx/src/ps/nsFontMetricsPS.cpp.agriffis 2004-02-04 20:57:05.000000000 -0500 ++++ gfx/src/ps/nsFontMetricsPS.cpp 2004-11-15 13:29:05.123342952 -0500 +@@ -1141,21 +1141,26 @@ + + mPixelSize = NSToIntRound(app2dev * mFont->size); + +- mImageDesc.font.face_id = (void*)mEntry; +- mImageDesc.font.pix_width = mPixelSize; +- mImageDesc.font.pix_height = mPixelSize; +- mImageDesc.image_type = 0; +- + nsresult rv; + mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); + if (NS_FAILED(rv)) { ++ NS_ERROR("failed to get ft2 service"); ++ return NS_ERROR_FAILURE; ++ } ++ ++ if (NS_FAILED(mFt2->GetLibrary(&mFreeTypeLibrary))) { ++ NS_ERROR("failed to get ft2 library"); + return NS_ERROR_FAILURE; + } ++ ++ mFace = nsnull; + return NS_OK; + } + + nsFontPSFreeType::~nsFontPSFreeType() + { ++ if (mFace) ++ mFt2->DoneFace(mFace); + mEntry = nsnull; + } + +@@ -1180,32 +1185,26 @@ + nscoord + nsFontPSFreeType::GetWidth(const PRUnichar* aString, PRUint32 aLength) + { +- FT_UInt glyph_index; +- FT_Glyph glyph; +- double origin_x = 0; +- + // get the face/size from the FreeType cache + FT_Face face = getFTFace(); + NS_ASSERTION(face, "failed to get face/size"); + if (!face) + return 0; + +- FTC_Image_Cache iCache; +- nsresult rv = mFt2->GetImageCache(&iCache); +- if (NS_FAILED(rv)) { +- NS_ERROR("Failed to get Image Cache"); +- return 0; +- } ++ FT_UInt glyph_index; ++ FT_Glyph glyph; ++ double origin_x = 0; + ++ // XXX : we might need some caching here + for (PRUint32 i=0; i<aLength; i++) { +- mFt2->GetCharIndex((FT_Face)face, aString[i], &glyph_index); +- nsresult rv = mFt2->ImageCacheLookup(iCache, &mImageDesc, +- glyph_index, &glyph); +- if (NS_FAILED(rv)) { ++ mFt2->GetCharIndex(face, aString[i], &glyph_index); ++ if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) || ++ NS_FAILED(mFt2->GetGlyph(face->glyph, &glyph))) { + origin_x += FT_REG_TO_16_16(face->size->metrics.x_ppem/2 + 2); + continue; + } + origin_x += glyph->advance.x; ++ mFt2->DoneGlyph(glyph); + } + + NS_ENSURE_TRUE(mFontMetrics, 0); +@@ -1224,16 +1223,26 @@ + FT_Face + nsFontPSFreeType::getFTFace() + { +- FT_Face face = nsnull; +- +- FTC_Manager cManager; +- mFt2->GetFTCacheManager(&cManager); +- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, +- &face, nsnull); ++ if (mFace) return mFace; ++ ++ nsCAutoString fileName; ++ PRInt16 faceIndex; ++ mEntry->GetFileName(fileName); ++ mEntry->GetFaceIndex(&faceIndex); ++ ++ nsresult rv = ++ mFt2->NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace); ++ + NS_ASSERTION(rv==0, "failed to get face/size"); +- if (rv) +- return nsnull; +- return face; ++ if (NS_FAILED(rv)) { ++ return nsnull; ++ } ++ ++ if (NS_FAILED(mFt2->SetPixelSizes(mFace, mPixelSize, 0))) { ++ return nsnull; ++ } ++ ++ return mFace; + } + + nscoord +@@ -1618,26 +1627,23 @@ + + void nsFT2Type8Generator::GeneratePSFont(FILE* aFile) + { +- nsCAutoString fontName, styleName; +- mEntry->GetFamilyName(fontName); +- mEntry->GetStyleName(styleName); +- +- mImageDesc.font.face_id = (void*)mEntry; +- // TT glyph has no relation to size +- mImageDesc.font.pix_width = 16; +- mImageDesc.font.pix_height = 16; +- mImageDesc.image_type = 0; +- FT_Face face = nsnull; +- FTC_Manager cManager; +- mFt2->GetFTCacheManager(&cManager); +- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, +- &face, nsnull); +- if (NS_FAILED(rv)) +- return; ++ if (mFace == nsnull) { ++ nsCAutoString fileName; ++ PRInt16 faceIndex; ++ ++ mEntry->GetFileName(fileName); ++ mEntry->GetFaceIndex(&faceIndex); ++ if (NS_FAILED(mFt2-> ++ NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace))) { ++ return; ++ } ++ NS_ASSERTION(mFace != nsnull, "mFace is null"); ++ } ++ + + int wmode = 0; + if (!mSubset.IsEmpty()) +- FT2SubsetToType8(face, mSubset.get(), mSubset.Length(), wmode, aFile); ++ FT2SubsetToType8(mFace, mSubset.get(), mSubset.Length(), wmode, aFile); + } + #endif //MOZ_ENABLE_FREETYPE2 + +--- gfx/src/x11shared/nsFontFreeType.cpp.agriffis 2003-12-25 03:24:52.000000000 -0500 ++++ gfx/src/x11shared/nsFontFreeType.cpp 2004-11-15 13:29:05.125342648 -0500 +@@ -173,15 +173,22 @@ + FT_Face + nsFreeTypeFont::getFTFace() + { +- FT_Face face = nsnull; +- FTC_Manager mgr; ++ if (mFace) return mFace; ++ ++ nsCAutoString fileName; ++ PRInt16 faceIndex; ++ mFaceID->GetFileName(fileName); ++ mFaceID->GetFaceIndex(&faceIndex); ++ + nsresult rv; +- mFt2->GetFTCacheManager(&mgr); +- rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull); ++ rv = mFt2->NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace); + NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size"); + if (NS_FAILED(rv)) + return nsnull; +- return face; ++ rv = mFt2->SetPixelSizes(mFace, mPixelSize, 0); ++ if (NS_FAILED(rv)) ++ return nsnull; ++ return mFace; + } + + nsFreeTypeFont::nsFreeTypeFont(nsITrueTypeFontCatalogEntry *aFaceID, +@@ -191,21 +198,20 @@ + PRBool embedded_bimap = PR_FALSE; + mFaceID = aFaceID; + mPixelSize = aPixelSize; +- mImageDesc.font.face_id = (void*)mFaceID; +- mImageDesc.font.pix_width = aPixelSize; +- mImageDesc.font.pix_height = aPixelSize; +- mImageDesc.image_type = 0; ++//mLoadFlag = FT_LOAD_RENDER; ++ mLoadFlag = 0; ++ mFace = nsnull; + + if (aPixelSize < nsFreeType2::gAntiAliasMinimum) { +- mImageDesc.image_type |= ftc_image_mono; ++ mLoadFlag |= FT_LOAD_MONOCHROME; + anti_alias = PR_FALSE; + } + + if (nsFreeType2::gFreeType2Autohinted) +- mImageDesc.image_type |= ftc_image_flag_autohinted; ++ mLoadFlag |= FT_LOAD_FORCE_AUTOHINT; + + if (nsFreeType2::gFreeType2Unhinted) +- mImageDesc.image_type |= ftc_image_flag_unhinted; ++ mLoadFlag |= FT_LOAD_NO_HINTING; + + PRUint32 num_embedded_bitmaps, i; + PRInt32* embedded_bitmapheights; +@@ -218,7 +224,7 @@ + if (embedded_bitmapheights[i] == aPixelSize) { + embedded_bimap = PR_TRUE; + // unhinted must be set for embedded bitmaps to be used +- mImageDesc.image_type |= ftc_image_flag_unhinted; ++ mLoadFlag |= FT_LOAD_NO_HINTING; + break; + } + } +@@ -230,6 +236,11 @@ + mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); + NS_ASSERTION(NS_SUCCEEDED(rv), "failed to find FreeType routines"); + ++ if (mFt2) { ++ rv = mFt2->GetLibrary(&mFreeTypeLibrary); ++ NS_ASSERTION(NS_SUCCEEDED(rv), "failed to find FreeType library"); ++ } ++ + FREETYPE_FONT_PRINTF(("anti_alias=%d, embedded_bitmap=%d, " + "AutoHinted=%d, gFreeType2Unhinted = %d, " + "size=%dpx, \"%s\"", +@@ -288,8 +299,6 @@ + PRInt32* aDescent, + PRInt32* aWidth) + { +- nsresult rv; +- + *aLeftBearing = 0; + *aRightBearing = 0; + *aAscent = 0; +@@ -312,11 +321,6 @@ + if (!face) + return NS_ERROR_FAILURE; + +- FTC_Image_Cache icache; +- mFt2->GetImageCache(&icache); +- if (!icache) +- return NS_ERROR_FAILURE; +- + // get the text size + PRUint32 i, extraSurrogateLength; + for (i=0; i<aLength; i+=1+extraSurrogateLength) { +@@ -337,16 +341,17 @@ + } + mFt2->GetCharIndex(face, code_point, &glyph_index); + +- //NS_ASSERTION(glyph_index,"failed to get glyph"); +- if (glyph_index) { +- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); +- NS_ASSERTION(NS_SUCCEEDED(rv),"error loading glyph"); +- } +- if ((glyph_index) && (NS_SUCCEEDED(rv))) { ++ // XXX : we need some caching here ++ if (glyph_index && ++ NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) && ++// NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) && ++ NS_SUCCEEDED(mFt2->GetGlyph(face->glyph, &glyph))) { + mFt2->GlyphGetCBox(glyph, ft_glyph_bbox_pixels, &glyph_bbox); + advance = FT_16_16_TO_REG(glyph->advance.x); ++ mFt2->DoneGlyph(glyph); + } + else { ++ NS_ERROR("failed to get or load glyph"); + // allocate space to draw an empty box in + GetFallbackGlyphMetrics(&glyph_bbox, face); + advance = glyph_bbox.xMax + 1; +@@ -401,11 +406,6 @@ + if (!face) + return 0; + +- FTC_Image_Cache icache; +- mFt2->GetImageCache(&icache); +- if (!icache) +- return 0; +- + PRUint32 i, extraSurrogateLength; + for (i=0; i<aLength; i+=1+extraSurrogateLength) { + extraSurrogateLength=0; +@@ -418,15 +418,18 @@ + // skip aString[i+1], it is already used as low surrogate + extraSurrogateLength = 1; + } ++ ++ // XXX : we need some caching here + mFt2->GetCharIndex((FT_Face)face, code_point, &glyph_index); +- nsresult rv; +- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); +- NS_ASSERTION(NS_SUCCEEDED(rv),"error loading glyph"); +- if (NS_FAILED(rv)) { ++ if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) || ++// if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) || ++ NS_FAILED(mFt2->GetGlyph(face->glyph, &glyph))) { ++ NS_ERROR("error loading glyph"); + origin_x += face->size->metrics.x_ppem/2 + 2; + continue; + } + origin_x += FT_16_16_TO_REG(glyph->advance.x); ++ mFt2->DoneGlyph(glyph); + } + + return origin_x; +@@ -723,11 +726,6 @@ + if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2); + #endif + +- FTC_Image_Cache icache; +- mFt2->GetImageCache(&icache); +- if (!icache) +- return 0; +- + // + // Get aa glyphs and blend with background + // +@@ -736,7 +734,6 @@ + for (i=0; i<aLength; i+=1+extraSurrogateLength) { + FT_UInt glyph_index; + FT_Glyph glyph; +- nsresult rv; + FT_BBox glyph_bbox; + FT_ULong code_point = aString[i]; + extraSurrogateLength = 0; +@@ -750,11 +747,12 @@ + extraSurrogateLength = 1; + } + ++ // XXX : we need some caching here + mFt2->GetCharIndex(face, code_point, &glyph_index); +- if (glyph_index) { +- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); +- } +- if ((glyph_index) && (NS_SUCCEEDED(rv))) { ++ if (glyph_index && ++ NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) && ++// NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) && ++ NS_SUCCEEDED(mFt2->GetGlyph(face->glyph, &glyph))) { + mFt2->GlyphGetCBox(glyph, ft_glyph_bbox_pixels, &glyph_bbox); + } + else { +@@ -775,13 +773,26 @@ + continue; + } + +- FT_BitmapGlyph slot = (FT_BitmapGlyph)glyph; ++ FT_BitmapGlyph slot; ++ ++ if (glyph->format != FT_GLYPH_FORMAT_BITMAP) ++ { ++ if (mFt2->GlyphToBitmap(&glyph, FT_RENDER_MODE_NORMAL, 0, 1)) { ++ NS_ERROR("failed to convert outline to bitmap "); ++ XDestroyImage(sub_image); ++ mFt2->DoneGlyph(glyph); ++ return 0; ++ } ++ } ++ ++ slot = (FT_BitmapGlyph)glyph; + nsAntiAliasedGlyph aaglyph(glyph_bbox.xMax-glyph_bbox.xMin, + glyph_bbox.yMax-glyph_bbox.yMin, 0); + PRUint8 buf[IMAGE_BUFFER_SIZE]; // try to use the stack for data + if (!aaglyph.WrapFreeType(&glyph_bbox, slot, buf, IMAGE_BUFFER_SIZE)) { + NS_ERROR("failed to wrap freetype image"); + XDestroyImage(sub_image); ++ mFt2->DoneGlyph(glyph); + return 0; + } + +@@ -815,6 +826,7 @@ + x_pos + aaglyph.GetLBearing(), ascent-glyph_bbox.yMax); + + x_pos += aaglyph.GetAdvance(); ++ mFt2->DoneGlyph(glyph); + } + + // +--- gfx/src/x11shared/nsFontFreeType.h.agriffis 2003-04-22 12:25:13.000000000 -0400 ++++ gfx/src/x11shared/nsFontFreeType.h 2004-11-15 13:29:05.125342648 -0500 +@@ -110,8 +110,10 @@ + XImage *GetXImage(PRUint32 width, PRUint32 height); + nsITrueTypeFontCatalogEntry *mFaceID; + PRUint16 mPixelSize; +- FTC_Image_Desc mImageDesc; + nsCOMPtr<nsIFreeType2> mFt2; ++ FT_Face mFace; ++ FT_Int32 mLoadFlag; ++ FT_Library mFreeTypeLibrary; + }; + + void WeightTableInitCorrection(PRUint8*, PRUint8, double); +--- gfx/src/freetype/nsFreeType.cpp.agriffis 2004-02-07 10:22:30.000000000 -0500 ++++ gfx/src/freetype/nsFreeType.cpp 2004-11-15 13:29:05.121343256 -0500 +@@ -109,12 +109,8 @@ + {"FT_Load_Glyph", NS_FT2_OFFSET(nsFT_Load_Glyph), PR_TRUE}, + {"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE}, + {"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE}, ++ {"FT_Set_Pixel_Sizes", NS_FT2_OFFSET(nsFT_Set_Pixel_Sizes), PR_TRUE}, + {"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE}, +- {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE}, +- {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE}, +- {"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE}, +- {"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE}, +- {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE}, + // #ifdef MOZ_SVG + {"FT_Glyph_Transform", NS_FT2_OFFSET(nsFT_Glyph_Transform), PR_TRUE}, + {"FT_Get_Kerning", NS_FT2_OFFSET(nsFT_Get_Kerning), PR_TRUE}, +@@ -274,59 +270,21 @@ + } + + NS_IMETHODIMP +-nsFreeType2::SetCharmap(FT_Face face, FT_CharMap charmap) +-{ +- // call the FreeType2 function via the function pointer +- FT_Error error = nsFT_Set_Charmap(face, charmap); +- return error ? NS_ERROR_FAILURE : NS_OK; +-} +- +-NS_IMETHODIMP +-nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc, +- FT_UInt glyphID, FT_Glyph *glyph) +-{ +- // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Image_Cache_Lookup(cache, desc, glyphID, glyph); +- return error ? NS_ERROR_FAILURE : NS_OK; +-} +- +-NS_IMETHODIMP +-nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font, +- FT_Face *face, FT_Size *size) ++nsFreeType2::SetPixelSizes(FT_Face face, FT_UInt width, FT_UInt height) + { + // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size); ++ FT_Error error = nsFT_Set_Pixel_Sizes(face, width, height); + return error ? NS_ERROR_FAILURE : NS_OK; + } +- +-NS_IMETHODIMP +-nsFreeType2::ManagerDone(FTC_Manager manager) +-{ +- // call the FreeType2 function via the function pointer +- nsFTC_Manager_Done(manager); +- return NS_OK; +-} +- ++ + NS_IMETHODIMP +-nsFreeType2::ManagerNew(FT_Library library, FT_UInt max_faces, +- FT_UInt max_sizes, FT_ULong max_bytes, +- FTC_Face_Requester requester, FT_Pointer req_data, +- FTC_Manager *manager) ++nsFreeType2::SetCharmap(FT_Face face, FT_CharMap charmap) + { + // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Manager_New(library, max_faces, max_sizes, max_bytes, +- requester, req_data, manager); ++ FT_Error error = nsFT_Set_Charmap(face, charmap); + return error ? NS_ERROR_FAILURE : NS_OK; + } + +-NS_IMETHODIMP +-nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) +-{ +- // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Image_Cache_New(manager, cache); +- return error ? NS_ERROR_FAILURE : NS_OK; +-} +- + // #ifdef MOZ_SVG + NS_IMETHODIMP + nsFreeType2::GlyphTransform(FT_Glyph glyph, FT_Matrix * matrix, FT_Vector * delta) +@@ -389,20 +347,6 @@ + } + + NS_IMETHODIMP +-nsFreeType2::GetImageCache(FTC_Image_Cache *aCache) +-{ +- *aCache = mImageCache; +- return NS_OK; +-} +- +-NS_IMETHODIMP +-nsFreeType2::GetFTCacheManager(FTC_Manager *aManager) +-{ +- *aManager = mFTCacheManager; +- return NS_OK; +-} +- +-NS_IMETHODIMP + nsFreeType2::GetLibrary(FT_Library *aLibrary) + { + *aLibrary = mFreeTypeLibrary; +@@ -425,8 +369,6 @@ + { + mSharedLib = nsnull; + mFreeTypeLibrary = nsnull; +- mFTCacheManager = nsnull; +- mImageCache = nsnull; + } + + // I would like to make this a static member function but the compilier +@@ -456,12 +398,6 @@ + delete gFreeTypeFaces; + gFreeTypeFaces = nsnull; + } +- // mImageCache released by cache manager +- if (mFTCacheManager) { +- // use "this->" to make sure it is obivious we are calling the member func +- this->ManagerDone(mFTCacheManager); +- mFTCacheManager = nsnull; +- } + if (mFreeTypeLibrary) { + // use "this->" to make sure it is obivious we are calling the member func + this->DoneFreeType(mFreeTypeLibrary); +@@ -658,17 +594,6 @@ + mFreeTypeLibrary = nsnull; + goto cleanup_and_return; + } +- // use "this->" to make sure it is obivious we are calling the member func +- rv = this->ManagerNew(mFreeTypeLibrary, 0, 0, 0, nsFreeTypeFaceRequester, +- this, &mFTCacheManager); +- NS_ASSERTION(NS_SUCCEEDED(rv), "failed to create FreeType Cache manager"); +- if (NS_FAILED(rv)) +- goto cleanup_and_return; +- // use "this->" to make sure it is obivious we are calling the member func +- rv = this->ImageCacheNew(mFTCacheManager, &mImageCache); +- NS_ASSERTION(NS_SUCCEEDED(rv), "failed to create FreeType image cache"); +- if (NS_FAILED(rv)) +- goto cleanup_and_return; + return PR_TRUE; + + cleanup_and_return: +--- gfx/src/freetype/nsFreeType.h.agriffis 2004-04-16 17:31:42.000000000 -0400 ++++ gfx/src/freetype/nsFreeType.h 2004-11-15 13:29:05.122343104 -0500 +@@ -102,15 +102,8 @@ + typedef FT_Error (*FT_Outline_Decompose_t) + (FT_Outline*, const FT_Outline_Funcs*, void*); + typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*); ++typedef FT_Error (*FT_Set_Pixel_Sizes_t)(FT_Face face, FT_UInt, FT_UInt); + typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap); +-typedef FT_Error (*FTC_Image_Cache_Lookup_t) +- (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*); +-typedef FT_Error (*FTC_Manager_Lookup_Size_t) +- (FTC_Manager, FTC_Font, FT_Face*, FT_Size*); +-typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager); +-typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong, +- FTC_Face_Requester, FT_Pointer, FTC_Manager*); +-typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*); + // #ifdef MOZ_SVG + typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*); + typedef FT_Error (*FT_Get_Kerning_t) +@@ -163,12 +156,8 @@ + FT_Load_Glyph_t nsFT_Load_Glyph; + FT_New_Face_t nsFT_New_Face; + FT_Outline_Decompose_t nsFT_Outline_Decompose; ++ FT_Set_Pixel_Sizes_t nsFT_Set_Pixel_Sizes; + FT_Set_Charmap_t nsFT_Set_Charmap; +- FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup; +- FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size; +- FTC_Manager_Done_t nsFTC_Manager_Done; +- FTC_Manager_New_t nsFTC_Manager_New; +- FTC_Image_Cache_New_t nsFTC_Image_Cache_New; + // #ifdef MOZ_SVG + FT_Glyph_Transform_t nsFT_Glyph_Transform; + FT_Get_Kerning_t nsFT_Get_Kerning; +@@ -181,9 +170,9 @@ + // this array needs to be big enough to hold all the function pointers + // plus one extra for the null at the end + // #ifdef MOZ_SVG +- static FtFuncList FtFuncs[24]; ++ static FtFuncList FtFuncs[20]; + // #else +-// static FtFuncList FtFuncs[20]; ++// static FtFuncList FtFuncs[17]; + // #endif + + protected: +@@ -212,8 +201,6 @@ + + PRLibrary *mSharedLib; + FT_Library mFreeTypeLibrary; +- FTC_Manager mFTCacheManager; +- FTC_Image_Cache mImageCache; + + static nsHashtable *sFontFamilies; + static nsHashtable *sRange1CharSetNames; |