On Thu, 2018-06-07 at 05:01 +0100, jnqnfe at gmail.com wrote: > API constification set #3 > > Some API functions perform validation routines which may modify the > 'error' attribute of a context object. For API functions where the > "primary" object is not a context object, and the object holds a non- > const context pointer, this internal mechanism could be successfully > hidden - such functions were constified in my previous two patch sets. > > However, some functions, namely those related directly to context > objects, had to be passed over previously. These could not be > constified because the validation routines accessed the context object > directly to change the error attribute. > > This patch set addresses this shortcoming. > > Firstly the patch set moves the context's error attribute behind a > pointer. The validation routines are then changed to store the error > value via this pointer. That then allows a collection of further API > functions to be constified. > > (actually pa_context_errno and the two rttime ones could have been done > previously on second inspection) > > Although the indirection of the error attribute is obviously ever so > slightly worse off for efficiency, it is surely worth the price. After > all, the error setting of the validation checks is just an artifact of > an internal mechanism and should not be allowed to influence the public > API like it currently does. Thanks! I applied patches 1 and 4. Patches 2 and 3 seem unnecessarily complicated, wouldn't it be better to just constify pa_context_set_error()? I altered the commit message of patch 1, because "See email discussion" seemed like something that could be very annoying to read in the commit message e.g. ten years from now. I replaced it with a short summary of the justification for the change. -- Tanu https://liberapay.com/tanuk https://www.patreon.com/tanuk