srs/trunk/auto
Winlin 4e55bc83b7
Support custom deleter for SrsUniquePtr. (#4309)
SrsUniquePtr does not support array or object created by malloc, because
we only use delete to dispose the resource. You can use a custom
function to free the memory allocated by malloc or other allocators.
```cpp
      char* p = (char*)malloc(1024);
      SrsUniquePtr<char> ptr(p, your_free_chars);
```

This is used to replace the SrsAutoFreeH. For example:
```cpp
      addrinfo* r = NULL;
      SrsAutoFreeH(addrinfo, r, freeaddrinfo);
      getaddrinfo("127.0.0.1", NULL, &hints, &r);
```

Now, this can be replaced by:
```cpp
      addrinfo* r = NULL;
      getaddrinfo("127.0.0.1", NULL, &hints, &r);
      SrsUniquePtr<addrinfo> r2(r, freeaddrinfo);
```

Please aware that there is a slight difference between SrsAutoFreeH and
SrsUniquePtr. SrsAutoFreeH will track the address of pointer, while
SrsUniquePtr will not.
```cpp
      addrinfo* r = NULL;
      SrsAutoFreeH(addrinfo, r, freeaddrinfo); // r will be freed even r is changed later.
      SrsUniquePtr<addrinfo> ptr(r, freeaddrinfo); // crash because r is an invalid pointer.
```

---------

Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: john <hondaxiao@tencent.com>
2025-04-26 00:01:34 -04:00
..
apps.sh For #2532: Windows: Replace ln by cp for windows. v5.0.87 (#3246) 2022-11-18 23:02:38 +08:00
auto_headers.sh Fix crash when quiting. v6.0.151 v7.0.10 (#4157) 2024-08-24 22:40:39 +08:00
codecov.sh For #2532: Windows: Replace ln by cp for windows. v5.0.87 (#3246) 2022-11-18 23:02:38 +08:00
depends.sh ST: Use clock_gettime to prevent time jumping backwards. v7.0.17 (#3979) 2024-10-15 17:52:17 +08:00
local_ip.sh update readme. 2014-03-23 18:03:24 +08:00
modules.sh For #2532: Windows: Replace ln by cp for windows. v5.0.87 (#3246) 2022-11-18 23:02:38 +08:00
options.sh Support custom deleter for SrsUniquePtr. (#4309) 2025-04-26 00:01:34 -04:00
reset_module.sh Moduels: Refine the description 2021-04-21 11:18:35 +08:00
setup_variables.sh Compile: Fix typo for 3rdparty. v5.0.166, v6.0.59 (#3615) 2023-07-10 08:16:59 +08:00
summary.sh Build: update build version to v7. v7.0.29 (#4294) 2025-03-21 19:15:05 +08:00
utest.sh Compile: Fix typo for 3rdparty. v5.0.166, v6.0.59 (#3615) 2023-07-10 08:16:59 +08:00