Le 11/07/2020 à 19:16, Albert Astals Cid a écrit : > Available from > http://poppler.freedesktop.org/poppler-0.90.1.tar.xz > > The tarball is signed at > http://poppler.freedesktop.org/poppler-0.90.1.tar.xz.sig with my key > http://hkps.pool.sks-keyservers.net/pks/lookup?op=get&search=0xCA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7 > > Release 0.90.1: > core: > * Fix regression on PS conversion. > Regression only happened on applications that are locale enabled > i.e. Okular but not pdftops, when using a quite new lcms and > the user locale uses , as decimal separator instead of . > * Add UTF16LE support to TextStringToUCS4. > Even if the standard clearly says it should be UTF16BE > > This release was brought to you by Albert Astals Cid, Nelson Benítez León and > everyone else that filed bugs or helped with code reviews :) > > Testing, patches and bug reports welcome. > > Cheers, > Albert
Hi, It seems clang-format has broken compilation on Windows, at least with Visual Studio 2017 and 2019 compilers. The errors occur when compiling the _WIN32 specific assembly code located in SplashMath.h because of incorrect formatting performed by clang-format on lines beginning with __asm keyword. For example in splashFloor(), we see that clang-format has grouped several __asm blocks on same lines: #elif defined(_WIN32) && defined(_M_IX86) // floor() and (int)() are implemented separately, which results // in changing the FPCW multiple times - so we optimize it with // some inline assembly unsigned short oldCW, newCW; int result; __asm fld QWORD PTR x __asm fnstcw WORD PTR oldCW __asm mov ax, WORD PTR oldCW __asm and ax, 0xf3ff __asm or ax, 0x0400 __asm mov WORD PTR newCW, ax // round down __asm fldcw WORD PTR newCW __asm fistp DWORD PTR result __asm fldcw WORD PTR oldCW return result; Finishing lines beginning with __asm keyword with a semicolon is optional and as of poppler 0.90.0, these lines beginning with __asm keyword did indeed not end with a semicolon. To fix this issue with clang-format, my guess is that a semicolon should simply be added. You will find a patch in attachments. Best regards, Jean Ghali
--- a/splash/SplashMath.h 2020-07-11 18:39:45.000000000 +0200 +++ b/splash/SplashMath.h 2020-07-17 13:48:33.249941200 +0200 @@ -66,9 +66,16 @@ unsigned short oldCW, newCW; int result; - __asm fld QWORD PTR x __asm fnstcw WORD PTR oldCW __asm mov ax, WORD PTR oldCW __asm and ax, 0xf3ff __asm or ax, 0x0400 __asm mov WORD PTR newCW, - ax // round down - __asm fldcw WORD PTR newCW __asm fistp DWORD PTR result __asm fldcw WORD PTR oldCW return result; + __asm fld QWORD PTR x; + __asm fnstcw WORD PTR oldCW; + __asm mov ax, WORD PTR oldCW; + __asm and ax, 0xf3ff; + __asm or ax, 0x0400; + __asm mov WORD PTR newCW, ax; // round down + __asm fldcw WORD PTR newCW; + __asm fistp DWORD PTR result; + __asm fldcw WORD PTR oldCW; + return result; #else if (x > 0) return (int)x; @@ -107,9 +114,16 @@ unsigned short oldCW, newCW; int result; - __asm fld QWORD PTR x __asm fnstcw WORD PTR oldCW __asm mov ax, WORD PTR oldCW __asm and ax, 0xf3ff __asm or ax, 0x0800 __asm mov WORD PTR newCW, - ax // round up - __asm fldcw WORD PTR newCW __asm fistp DWORD PTR result __asm fldcw WORD PTR oldCW return result; + __asm fld QWORD PTR x; + __asm fnstcw WORD PTR oldCW; + __asm mov ax, WORD PTR oldCW; + __asm and ax, 0xf3ff; + __asm or ax, 0x0800; + __asm mov WORD PTR newCW, ax; // round up + __asm fldcw WORD PTR newCW; + __asm fistp DWORD PTR result; + __asm fldcw WORD PTR oldCW; + return result; #else return (int)ceil(x); #endif @@ -145,9 +159,16 @@ int result; x += 0.5; - __asm fld QWORD PTR x __asm fnstcw WORD PTR oldCW __asm mov ax, WORD PTR oldCW __asm and ax, 0xf3ff __asm or ax, 0x0400 __asm mov WORD PTR newCW, - ax // round down - __asm fldcw WORD PTR newCW __asm fistp DWORD PTR result __asm fldcw WORD PTR oldCW return result; + __asm fld QWORD PTR x; + __asm fnstcw WORD PTR oldCW; + __asm mov ax, WORD PTR oldCW; + __asm and ax, 0xf3ff; + __asm or ax, 0x0400; + __asm mov WORD PTR newCW, ax; // round down + __asm fldcw WORD PTR newCW; + __asm fistp DWORD PTR result; + __asm fldcw WORD PTR oldCW; + return result; #else return (int)splashFloor(x + 0.5); #endif
_______________________________________________ poppler mailing list poppler@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/poppler