     "_destroyTLS was called, but with nil...")
   let tlsPtr = ptr!.assumingMemoryBound(to: _ThreadLocalStorage.self)
   __swift_stdlib_ubrk_close(tlsPtr[0].uBreakIterator)
-  tlsPtr[0].associatedStringOwner = nil
-  tlsPtr[0].associatedBaseAddress = nil
   tlsPtr.deinitialize(count: 1)
   tlsPtr.deallocate(capacity: 1)
 

    _sanityCheck(core._owner != nil || core._baseAddress != nil,
      "invalid StringCore")

    // Check if we must reset the text
    if tlsPtr[0].associatedStringOwner !== core._owner
    || tlsPtr[0].associatedBaseAddress != core._baseAddress
    || tlsPtr[0].associatedCountAndFlags != core._countAndFlags
    {
      // cache miss
      var err = __swift_stdlib_U_ZERO_ERROR
      let corePtr: UnsafeMutablePointer<UTF16.CodeUnit>
      corePtr = core.startUTF16
      __swift_stdlib_ubrk_setText(brkIter, corePtr, Int32(core.count), &err)
      _precondition(err.isSuccess, "unexpected ubrk_setUText failure")
      tlsPtr[0].associatedStringOwner = core._owner
      tlsPtr[0].associatedBaseAddress = core._baseAddress
      tlsPtr[0].associatedCountAndFlags = core._countAndFlags
    }

    return brkIter
  }

  // compare unequal if a new StringCore happens to be created in the same
  // memory.
  //
  // TODO: unowned reference to string owner, base address, and _countAndFlags

  // private: Should only be called by _initializeThreadLocalStorage
  init(_uBreakIterator: OpaquePointer) {
