Hi, I fixed it in SVN.
Thanks, Alex > Am 22.12.2016 um 12:04 schrieb amal...@kannel.org: > > Hi Werner, > > as far as I see there is no reason to immutable assert. > > Alex > > >> Am 21.12.2016 um 15:39 schrieb Werner Coetzee <werner.coet...@clickatell.com >> <mailto:werner.coet...@clickatell.com>>: >> >> Hi >> >> Why does the octstr_cat(Octstr *ostr1, Octstr *ostr2) function in >> gwlib/octstr.c require that ostr1 be non-immutable? >> It contains: >> gw_assert(!ostr1->immutable); >> >> I can't see any reason for the requirement since ostr1 is never modified in >> octstr_cat() so to me octstr_cat() should work perfectly fine/safely if >> ostr1 is immutable. >> And since the requirement is there for ostr1, why is it not there for ostr2? >> There's no difference in the way that ostr1 and ostr2 is used. >> >> I now have to resort to much slower functions such as octstr_format or >> octstr_insert or octstr_append to get the same result. >> >> My use case: >> >> void myfunc(const Octstr *param) // param should/will not be modified >> { >> Octstr *newvar = octstr_cat(octstr_imm("PREFIX"), param); // this will >> panic >> // Do something with newvar >> } >> >> So my work around is newvar = octstr_format("%s%S", "PREFIX", param); but >> could also have newvar = octstr_create("PREFIX"); octstr_append(newvar, >> param); or even newvar = octstr_duplicate(param); octstr_insert(newvar, >> octstr_imm("PREFIX"), 0); >> >> I would really appreciate it if someone could shed some light on this, and >> if the powers that be agree with me remove the assertion? >> >> Thanks in advance >> Werner >> >> >> >> <image1a2972.PNG> >> Werner Coetzee >> Senior Message Engine Engineer >> <imagea0c2e2.PNG> >> >> T +27 21 910 7700 >> werner.coet...@clickatell.com <mailto:werner.coet...@clickatell.com> >> www.clickatell.com <https://www.clickatell.com/> >> <imagedf67b0.PNG> >