These are all instances of an object being put into a container just
before it goes out of scope. Use move semantics to avoid copying.
Change-Id: I9c40a56c4a67df2b8e244d51f068b50ec286f5bf
Warned-by: Coverity
Use overloading for the various flavours of str2int functions. This has
the benefit of automatically choosing the appropriate function for
aliased types that may be one or the other underlying type, such as
size_t.
Do a mass renaming of all relevant instances.
Change-Id: I7abb6b9031ee53332d2b04a6cba4a6cc667a4807
Don't store variables in a processor register
but store as usually in memory.
Resolves:
10: 32:12 AmSdp.cpp: In function 'bool parse_sdp_line_ex(AmSdp*, char*&)':
10: 32:12 AmSdp.cpp:571:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
10: 32:12 571 | register parse_st state;
10: 32:12 | ^~~~~
10: 32:12 AmSdp.cpp: In function 'char* parse_sdp_connection(AmSdp*, char*, char)':
10: 32:12 AmSdp.cpp:757:30: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
10: 32:12 757 | register sdp_connection_st state;
10: 32:12 | ^~~~~
10: 32:12 AmSdp.cpp: In function 'void parse_sdp_media(AmSdp*, char*)':
10: 32:12 AmSdp.cpp:838:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
10: 32:12 838 | register sdp_media_st state;
10: 32:12 | ^~~~~
10: 32:12 AmSdp.cpp: In function 'char* parse_sdp_attr(AmSdp*, char*)':
10: 32:12 AmSdp.cpp:1038:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
10: 32:12 1038 | register sdp_attr_rtpmap_st rtpmap_st;
10: 32:12 | ^~~~~~~~~
10: 32:12 AmSdp.cpp:1039:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
10: 32:12 1039 | register sdp_attr_fmtp_st fmtp_st;
10: 32:12 | ^~~~~~~
10: 32:12 AmSdp.cpp: In function 'void parse_sdp_origin(AmSdp*, char*)':
10: 32:12 AmSdp.cpp:1253:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
10: 32:12 1253 | register sdp_origin_st origin_st;
10: 32:12 |
Change-Id: Ice87c3659816003c94359f891a490db0910ff74a
SDP session origin id and version are limited by it's size
to 64 bits (8 bytes), that is because we are using `unsigned long long`
type for both id and version. Hence the maximum value it can hold
is two sixty-forth power, so equals: 18,446,744,073,709,551,615
In case one intentionally sets it to something like:
"o=- 18446744073709551615 18446744073709551615 IN IP4 192.168.0.1"
SEMS gets overwhelmed with that conversion inside the code make
it just to a string literal 'F'.
To overcome it, just use __uint128 (which is of 128bits size)
for the session origin id and version.
Change-Id: I2ad9659aa81dad79969749053dc3fd0d69e2cbd2
Use `unsigned long long` for SDP session id and version
instead of unsigned int.
Refactor all usage of them accordingly.
Additionally intrdouce new utils functions for conversion:
- `ulonglong2str()` - converts `unsigned long long` to `string`
- `str2ull()` - converts `string` to `unsigned long long`
Change-Id: I4210349a5442d4173b14227497f4a01d68cad7a4
This commit fixes that:
AmSdp.cpp: In function 'void parse_sdp_media(AmSdp*, char*)':
AmSdp.cpp:858:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
858 | if (next > media_line)
| ^~
AmSdp.cpp:860:11: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
860 | m.type = media_type(media);
| ^
Change-Id: Ie5b7760d3e11ec825ea68138d06eaeb150da202c