Apologies if this comes through twice (yesterday, I accidentally posted while being unsubscribed). Here's a link on MSDN which might be helpful...

https://msdn.microsoft.com/en-us/library/191ca0sk.aspx

On 06/09/2018 15:19, John Emmas wrote:
I updated from git today and I've hit a problem when building with MSVC...

Trying to compile almost any source file produces the following compiler error at lines 255 and 256 of 'hb-atomic.hh':-

   error C2664: 'InterlockedExchangeAdd' : cannot convert parameter 1 from 'unsigned int *' to 'volatile LONG *'

Here are the relevant lines:-

   inline int inc (void) { return hb_atomic_int_impl_add (&v, 1); }
   inline int dec (void) { return hb_atomic_int_impl_add (&v, -1); }

and here's how 'hb_atomic_int_impl_add()' looks (at line 109):-

   #define hb_atomic_int_impl_add(AI, V)    InterlockedExchangeAdd ((unsigned *) (AI), (V)

If I change the above line to this, the compiler error goes away:-

   #define hb_atomic_int_impl_add(AI, V)    InterlockedExchangeAdd ((volatile LONG *) (AI), (V)

I'm building with MSVC-8 so could someone check on some other versions please with a view to making the change permanent? Thanks.

John



_______________________________________________
HarfBuzz mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to