[HarfBuzz] [PATCH] Implement threading primitives on Windows; fix compile error and leak

Ed ed.trager at gmail.com
Thu May 5 10:54:06 PDT 2011


Hi, Behdad,

>
> Now, since we are using C++ in HarfBuzz, I wonder if we can use constructors
> to initialize the static mutexes automatically?
>

As far as I am aware --please correct me if I am wrong-- the current
HarfBuzz NG code relies entirely on C-style "structs" and seems to
eschew implementing "true" C++ classes (i.e., those with
compiler-enforced private members, explicit user-defined constructors
and destructors, etc., (as opposed to "structs" which can be defined
as a more limited subset of "classes" where all members are public)).

So I assumed that HarfBuzz NG was not actually using C++ at all --and
that perhaps the reason was to insure the possibility of compilation
in some sort of embedded device environments where C++ compilers are
not used ... or something like that.

But now you are saying that HarfBuzz is using C++.  So, if that is the
case, then why are you not using a code development model that takes
full advantage of C++ and do precisely things like "use constructors
to initialize static mutexes automatically", inter alia ?  And why not
take advantage of other aspects that C++ provides, like true private
and protected members?

That's one question.

But a related valid question is: would you accept contributions to the
code base that do utilize true C++ classes featuring things like
constructors, destructors, protected and private members, despite the
fact that such contributions would differ in coding style from what
you are currently creating?

Best - Ed



More information about the HarfBuzz mailing list