[NFC] Refactor initialisation of Darwin malloc zone fields into separate function...
authorDan Liew <dan@su-root.co.uk>
Fri, 2 Nov 2018 15:28:11 +0000 (15:28 +0000)
committerDan Liew <dan@su-root.co.uk>
Fri, 2 Nov 2018 15:28:11 +0000 (15:28 +0000)
Summary:
The motivation here is to be able support initialisation of the
malloc zone on other code paths.

rdar://problem/45284065

Reviewers: kubamracek, george.karpenkov

Subscribers: llvm-commits, #sanitizers

Differential Revision: https://reviews.llvm.org/D54037

llvm-svn: 345983

compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc

index e69d6f9..f9f40f8 100644 (file)
@@ -302,7 +302,7 @@ boolean_t mi_zone_locked(malloc_zone_t *zone) {
 
 namespace COMMON_MALLOC_NAMESPACE {
 
-void ReplaceSystemMalloc() {
+void InitMallocZoneFields() {
   static malloc_introspection_t sanitizer_zone_introspection;
   // Ok to use internal_memset, these places are not performance-critical.
   internal_memset(&sanitizer_zone_introspection, 0,
@@ -335,6 +335,10 @@ void ReplaceSystemMalloc() {
   sanitizer_zone.free_definite_size = 0;
   sanitizer_zone.memalign = &__sanitizer_mz_memalign;
   sanitizer_zone.introspect = &sanitizer_zone_introspection;
+}
+
+void ReplaceSystemMalloc() {
+  InitMallocZoneFields();
 
   // Register the zone.
   malloc_zone_register(&sanitizer_zone);