cdr.c: Set stringfields only if they are different.
authorRichard Mudgett <rmudgett@digium.com>
Thu, 5 Oct 2017 23:08:33 +0000 (18:08 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Fri, 13 Oct 2017 00:12:07 +0000 (19:12 -0500)
commit7c7a9178740587fc5a120d59608ce3005478b5af
tree8ec1708bc2cf2c15f42da13b6727f8e8529e8ee3
parentc80c8f2ab968e9cf4de1db1fccfece990318671e
cdr.c: Set stringfields only if they are different.

The CDR performance gets worse the further it gets behind in processing
stasis messages.  One of the reasons is we were repeatedly setting string
fields to potentially the same string in base_process_party_a().  Setting
a string field involves allocating room for the new string out of a memory
pool which may have to allocate even more memory.

* Check to see if the string field is already set to the desired string.

ASTERISK-27335

Change-Id: I3ccb7e23f1488417e08cafe477755033eed65a7c
main/cdr.c