Skip to content

Commit

Permalink
Added lost usage of USE_AWS_MEMORY_MANAGEMENT
Browse files Browse the repository at this point in the history
  • Loading branch information
sdavtaker committed Mar 31, 2023
1 parent 5374a75 commit f018489
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 7 deletions.
6 changes: 3 additions & 3 deletions docs/Memory_Management.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Memory Management
The AWS SDK for C++ provides a way to control memory allocation and deallocation in a library.

Custom memory management is available only if you use a version of the library built using the compile-time constant AWS_CUSTOM_MEMORY_MANAGEMENT defined.
Custom memory management is available only if you use a version of the library built using the compile-time constant USE_AWS_MEMORY_MANAGEMENT defined.

If you use a version of the library built without the compile-time constant, the global memory system functions such as InitializeAWSMemorySystem will not work and the global new and delete functions will be used instead.

Expand Down Expand Up @@ -48,7 +48,7 @@ When initialized with a memory manager, the AWS SDK for C++ defers all allocatio
If you use custom STL allocators, you must alter the type signatures for all STL objects to match the allocation policy. Because STL is used prominently in the SDK implementation and interface, a single approach in the SDK would inhibit direct passing of default STL objects into the SDK or control of STL allocation. Alternately, a hybrid approach – using custom allocators internally and allowing standard and custom STL objects on the interface – could potentially cause more difficulty when investigating memory issues.
The solution is to use the memory system’s compile-time constant AWS_CUSTOM_MEMORY_MANAGEMENT to control which STL types the SDK will use.
The solution is to use the memory system’s compile-time constant USE_AWS_MEMORY_MANAGEMENT to control which STL types the SDK will use.
If the compile-time constant is enabled (on), the types resolve to STL types with a custom allocator connected to the AWS memory system.
Expand All @@ -57,7 +57,7 @@ If the compile-time constant is disabled (off), all Aws::* types resolve to the
Example code from the AWSAllocator.h file in the SDK:
```cpp
#ifdef AWS_CUSTOM_MEMORY_MANAGEMENT
#ifdef USE_AWS_MEMORY_MANAGEMENT
template< typename T >
class AwsAllocator : public std::allocator< T >
Expand Down
2 changes: 1 addition & 1 deletion docs/SDK_usage_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Several directories are appended with \*integration-tests. After building your p

## Build Defines
If you dynamically link to the SDK you will need to define the USE_IMPORT_EXPORT symbol for all build targets using the SDK.
If you wish to install your own memory manager to handle allocations made by the SDK, you will need to pass the CUSTOM_MEMORY_MANAGEMENT cmake parameter (-DCUSTOM_MEMORY_MANAGEMENT) as well as define AWS_CUSTOM_MEMORY_MANAGEMENT in all build targets dependent on the SDK.
If you wish to install your own memory manager to handle allocations made by the SDK, you will need to pass the CUSTOM_MEMORY_MANAGEMENT cmake parameter (-DCUSTOM_MEMORY_MANAGEMENT) as well as define USE_AWS_MEMORY_MANAGEMENT in all build targets dependent on the SDK.

Note, if you use our export file, this will be handled automatically for you. We recommend you use our export file to handle this for you:
https://aws.amazon.com/blogs/developer/using-cmake-exports-with-the-aws-sdk-for-c/
Expand Down
2 changes: 1 addition & 1 deletion src/aws-cpp-sdk-core/source/client/RequestCompression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ void aws_zfree(void * /* opaque */, void * ptr)
}
}

#endif // AWS_CUSTOM_MEMORY_MANAGEMENT
#endif // USE_AWS_MEMORY_MANAGEMENT
#endif // ENABLED_ZLIB_REQUEST_COMPRESSION


Expand Down
4 changes: 2 additions & 2 deletions src/aws-cpp-sdk-core/source/http/curl/CurlHttpClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ using namespace Aws::Utils;
using namespace Aws::Utils::Logging;
using namespace Aws::Monitoring;

#ifdef AWS_CUSTOM_MEMORY_MANAGEMENT
#ifdef USE_AWS_MEMORY_MANAGEMENT

static const char* MemTag = "libcurl";
static size_t offset = sizeof(size_t);
Expand Down Expand Up @@ -478,7 +478,7 @@ void CurlHttpClient::InitGlobalState()
AWS_LOGSTREAM_INFO(CURL_HTTP_CLIENT_TAG, "Initializing Curl library with version: " << curlVersionData->version
<< ", ssl version: " << curlVersionData->ssl_version);
isInit = true;
#ifdef AWS_CUSTOM_MEMORY_MANAGEMENT
#ifdef USE_AWS_MEMORY_MANAGEMENT
curl_global_init_mem(CURL_GLOBAL_ALL, &malloc_callback, &free_callback, &realloc_callback, &strdup_callback, &calloc_callback);
#else
curl_global_init(CURL_GLOBAL_ALL);
Expand Down

0 comments on commit f018489

Please sign in to comment.