diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html index 46b82ddc21f..fad5edf1801 100644 --- a/docs/ProgrammersManual.html +++ b/docs/ProgrammersManual.html @@ -2265,18 +2265,18 @@ array from the User object and there may be a variable number of them.
-Initially each layout will possess a direct pointer to the +As of v2.4 each layout still possesses a direct pointer to the start of the array of Uses. Though not mandatory for layout a), we stick to this redundancy for the sake of simplicity. -The User object will also store the number of Use objects it +The User object also stores the number of Use objects it has. (Theoretically this information can also be calculated given the scheme presented below.)
Special forms of allocation operators (operator new) -will enforce the following memory layouts:
+enforce the following memory layouts:Layout a) will be modelled by prepending the User object by the Use[] array.
+Layout a) is modelled by prepending the User object by the Use[] array.
...---.---.---.---.-------... @@ -2284,7 +2284,7 @@ will enforce the following memory layouts: '''---'---'---'---'-------'''-
Layout b) will be modelled by pointing at the Use[] array.
+Layout b) is modelled by pointing at the Use[] array.
.-------... | User @@ -2306,12 +2306,12 @@ will enforce the following memory layouts:-A bit-encoding in the 2 LSBits (least significant bits) of the Use::Prev will allow to find the +A bit-encoding in the 2 LSBits (least significant bits) of the Use::Prev allows to find the start of the User object:-Since the Use objects will be deprived of the direct pointer to +Since the Use objects are deprived of the direct (back)pointer to their User objects, there must be a fast and exact method to recover it. This is accomplished by the following scheme:
-For layout b) instead of the User we will find a pointer (User* with LSBit set). -Following this pointer brings us to the User. A portable trick will ensure -that the first bytes of User (if interpreted as a pointer) will never have +For layout b) instead of the User we find a pointer (User* with LSBit set). +Following this pointer brings us to the User. A portable trick ensures +that the first bytes of User (if interpreted as a pointer) never has the LSBit set.