On Fri, 2018-06-15 at 14:15 +0300, Tanu Kaskinen wrote: > 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. I applied the rttime patches as well now. -- Tanu https://liberapay.com/tanuk https://www.patreon.com/tanuk