SOURCES: mozilla-cairo.patch - use delete instead of free (without...

Jakub Bogusz qboosh w pld-linux.org
Nie, 27 Mar 2005, 12:23:51 CEST


On Sun, Mar 27, 2005 at 11:38:54AM +0200, havner wrote:
> Author: havner                       Date: Sun Mar 27 09:38:54 2005 GMT
> Module: SOURCES                       Tag: HEAD
> ---- Log message:
> - use delete instead of free (without even including stdlib.h)

> +diff -ur mozilla.orig/layout/svg/renderer/src/cairo/nsSVGCairoGlyphMetrics.cpp mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphMetrics.cpp
> +--- mozilla.orig/layout/svg/renderer/src/cairo/nsSVGCairoGlyphMetrics.cpp	2004-03-16 22:40:07.000000000 +0100
> ++++ mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphMetrics.cpp	2005-03-27 11:38:00.253917800 +0200
> +@@ -321,7 +321,7 @@
> +     font.GetFirstFamily(family);
> +     char *f = ToNewCString(family);
> +     cairo_select_font(mCT, f, slant, weight);
> +-    free(f);
> ++    delete f;
> +     mFont = cairo_current_font(mCT);
> + 
> +     nsCOMPtr<nsIPresContext> presContext;

ToNewCString wywołuje nsMemory::Alloc, co (za pośrednictwem kolejnych
klas) przekłada się na PR_Malloc (z nspr).
PR_Malloc w zależności od czegoś (występowania symbolu
nspr_use_zone_allocator albo zmiennej środowiskowej
NSPR_USE_ZONE_ALLOCATOR) wywołuje malloc albo własne przydzielanie
pamięci.

Czyli najbezpieczniej jest wywołać PR_Free(f).
delete może zaszkodzić.


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/




Więcej informacji o liście dyskusyjnej pld-devel-pl