@@ -1036,8 +1036,8 @@ namespace {
10361036 // If there isn't one there, optimistically create an entry and
10371037 // try to swap it in.
10381038 if (!existingEntry) {
1039- auto allocatedEntry =
1040- new SingletonMetadataCacheEntry ( std::forward<ArgTys>(args)...);
1039+ auto allocatedEntry = swift_cxx_newObject<SingletonMetadataCacheEntry>(
1040+ std::forward<ArgTys>(args)...);
10411041 if (cache.Private .compare_exchange_strong (existingEntry,
10421042 allocatedEntry,
10431043 std::memory_order_acq_rel,
@@ -3316,12 +3316,12 @@ initGenericObjCClass(ClassMetadata *self, size_t numFields,
33163316 if (!_globalIvarOffsets) {
33173317 if (numFields <= NumInlineGlobalIvarOffsets) {
33183318 _globalIvarOffsets = _inlineGlobalIvarOffsets;
3319+ // Make sure all the entries start out null.
3320+ memset (_globalIvarOffsets, 0 , sizeof (size_t *) * numFields);
33193321 } else {
3320- _globalIvarOffsets = new size_t *[numFields];
3322+ _globalIvarOffsets =
3323+ static_cast <size_t **>(calloc (sizeof (size_t *), numFields));
33213324 }
3322-
3323- // Make sure all the entries start out null.
3324- memset (_globalIvarOffsets, 0 , sizeof (size_t *) * numFields);
33253325 }
33263326 return _globalIvarOffsets;
33273327 };
@@ -3381,7 +3381,7 @@ initGenericObjCClass(ClassMetadata *self, size_t numFields,
33813381
33823382 // Free the out-of-line if we allocated one.
33833383 if (_globalIvarOffsets != _inlineGlobalIvarOffsets) {
3384- delete [] _globalIvarOffsets;
3384+ free ( _globalIvarOffsets) ;
33853385 }
33863386 }
33873387
0 commit comments