diff --git a/docs/usermanual-object-model.xml b/docs/usermanual-object-model.xml
index f0b76ce91..f571c477f 100644
--- a/docs/usermanual-object-model.xml
+++ b/docs/usermanual-object-model.xml
@@ -90,7 +90,7 @@
fonts, which represent instances of a
- face will all of their parameters specified.
+ face with all of their parameters specified.
@@ -103,7 +103,10 @@
shape plans, which store the settings
- that HarfBuzz will use when shaping a particular text segment.
+ that HarfBuzz will use when shaping a particular text
+ segment. Shape plans are not generally used by client
+ programs directly, but as we will see in a later chapter,
+ they are still valuable to understand.
@@ -124,9 +127,11 @@
blob directly from the contents of a file.
- Client programs can increase the reference count on an object by
- calling its reference() method. Whenever a
- client program is finished with an object, it should call its
+ All objects are created with an initial reference count of
+ 1. Client programs can increase the reference
+ count on an object by calling its
+ reference() method. Whenever a client
+ program is finished with an object, it should call its
corresponding destroy() method. The destroy
method will decrease the reference count on the object and,
whenever the reference count reaches zero, it will also destroy
@@ -134,7 +139,9 @@
All of HarfBuzz's object-lifecycle-management APIs are
- thread-safe, even when the object as a whole is not thread-safe .
+ thread-safe (unless you compiled HarfBuzz from source with the
+ HB_NO_MT configuration flag), even when the
+ object as a whole is not thread-safe.
It is also permissible to reference() or to
destroy() the NULL
value.
@@ -152,7 +159,7 @@
make_immutable() methods to mark an object
as immutable and is_immutable() methods to
test whether or not an object is immutable. Attempts to use
- setter functions on immutable objects will fail; see the API
+ setter functions on immutable objects will fail silently; see the API
Reference manual for specifics.
@@ -161,10 +168,11 @@
they will need to make a duplicate of the original.
- Finally, object constructors (and, indeed, as much of the API as
- possible) will never return NULL. Instead,
- if there is an allocation error, each constructor will
- return an “empty” object singleton.
+ Finally, object constructors (and, indeed, as much of the
+ shaping API as possible) will never return
+ NULL. Instead, if there is an allocation
+ error, each constructor will return an “empty” object
+ singleton.
These empty-object singletons are inert and safe (although
@@ -208,8 +216,9 @@
Finally, each set_user_data() method allows
the client program to set a replace Boolean
- indicating whether or not the user_data
- associated with a key ought to be replaceable.
+ indicating whether or not the function call should replace any
+ existing user_data
+ associated with the specified key.