mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 12:55:58 +01:00
CONTRIBUTING.md: update construction/destruction functions' description
wlroots doesn't really follow the rule of keeping `create`/`destroy` and `init`/`finish` functions in pairs, so the relevant doc section is updated accordingly.
This commit is contained in:
parent
35b3d67e5f
commit
db6661502d
1 changed files with 16 additions and 9 deletions
|
@ -186,16 +186,23 @@ all of the characters, and replace any invalid characters with an underscore.
|
||||||
|
|
||||||
### Construction/Destruction Functions
|
### Construction/Destruction Functions
|
||||||
|
|
||||||
For functions that are responsible for constructing and destructing an object,
|
Functions that are responsible for constructing objects should take one of the
|
||||||
they should be written as a pair of one of two forms:
|
two following forms:
|
||||||
* `init`/`finish`: These initialize/deinitialize a type, but are **NOT**
|
|
||||||
responsible for allocating it. They should accept a pointer to some
|
|
||||||
pre-allocated memory (e.g. a member of a struct).
|
|
||||||
* `create`/`destroy`: These also initialize/deinitialize, but will return a
|
|
||||||
pointer to a `malloc`ed chunk of memory, and will `free` it in `destroy`.
|
|
||||||
|
|
||||||
A destruction function should always be able to accept a NULL pointer or a
|
* `init`: for functions which accept a pointer to a pre-allocated object (e.g.
|
||||||
zeroed value and exit cleanly; this simplifies error handling a lot.
|
a member of a struct) and initialize it.
|
||||||
|
* `create`: for functions which allocate the memory for an object, initialize
|
||||||
|
it, and return a pointer.
|
||||||
|
|
||||||
|
Likewise, functions that are responsible for destructing objects should take
|
||||||
|
one of the two following forms:
|
||||||
|
|
||||||
|
* `finish`: for functions which accept a pointer to an object and deinitialize
|
||||||
|
it. Such functions should always be able to accept an already deinitialized
|
||||||
|
object.
|
||||||
|
* `destroy`: for functions which accept a pointer to an object, deinitialize
|
||||||
|
it, and free the memory. Such functions should always be able to accept a NULL
|
||||||
|
pointer.
|
||||||
|
|
||||||
### Error Codes
|
### Error Codes
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue