| 117 | #endif |
| 118 | |
| 119 | void Initialize( |
| 120 | size_t size, |
| 121 | TSharedMutableRefAllocateOptions options, |
| 122 | TRefCountedTypeCookie cookie) |
| 123 | { |
| 124 | Size_ = size; |
| 125 | #ifdef YT_ENABLE_REF_COUNTED_TRACKING |
| 126 | Cookie_ = cookie; |
| 127 | #else |
| 128 | Y_UNUSED(cookie); |
| 129 | #endif |
| 130 | if (options.InitializeStorage) { |
| 131 | ::memset(static_cast<TDerived*>(this)->GetBegin(), 0, Size_); |
| 132 | } |
| 133 | #ifdef YT_ENABLE_REF_COUNTED_TRACKING |
| 134 | TRefCountedTrackerFacade::AllocateTagInstance(Cookie_); |
| 135 | TRefCountedTrackerFacade::AllocateSpace(Cookie_, Size_); |
| 136 | #endif |
| 137 | } |
| 138 | }; |
| 139 | |
| 140 | //////////////////////////////////////////////////////////////////////////////// |