[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ft-devel] Prototypes of memory debugging routines on WIN64

From: Hin-Tak Leung
Subject: [ft-devel] Prototypes of memory debugging routines on WIN64
Date: Tue, 11 Sep 2018 19:01:56 +0000 (UTC)

Hi Werner,

I think I have found a code problem with the memory debugging routines on WIN64. While they are only visible on win64, and only if you try to do a devel /debug build, it probably needs to be fixed at some point; but the fix seems a bit tricky.

The underlying problem is that "long" is 32-bit on 64-bit windows. Thus there are two problems:

- FT_Alloc_Func and FT_Realloc_Func have "long" in the headers but have FT_Long in the implementation of the debug pairs. (the normal pair have "long"). Some consistency would be good. I tried changing the header to FT_Long (and redefining FT_Long to 64-bit) but unfortunately the public header does not include the FT_Long definition in inttypes.h and it gets rather ugly when different part of FreeType thinks of FT_Long with different sizes... Those functions need a 64-bit type in the prototype, and neither "long" nor "FT_Long" are currently 64-bit on win64.

- the other thing I try is simply putting a lot of _int64 with a lot of '#ifdef _WIN64` .  That works a bit better but visually quite messy. Also a lot of the printf's format specifier (all those "%ld" 's ) needs to be changed.

Anyway, this is probably a long-ish and low-priority change as it only affects 64-bit debug build.

Also, I am currently looking at a win64-only crash of FontVal at last - and found some of the trace statements a bit odd as they only output at the end of a successful run e.g. in FT_Load_Glyph - how do you feel about sprinkling some on routine entry? I am adding one for myself anyway - just wondering if you want such thing upstreamed :-).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]