Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Naprawa wycieków pamięci przez implementację inteligentnych wskaźników w systemie wiadomości

Nieaktywny

Featured Replies

Opublikowano

bugfix.webp.0a739ad15af71c44f5367650b6c9e164.webp

 

Cześć, 🖐️

 

Wprowadzenie

W oryginalnej implementacji każde wywołanie funkcji 'CreateWhisper' z identycznym argumentem 'c_szName' skutkowało utworzeniem nowego obiektu typu 'CWhisper'. Następnie obiekt ten był dodawany do mapy. Ta praktyka otwierała możliwość nadpisania już istniejących obiektów bez ich wcześniejszego usunięcia, co stwarzało ryzyko potencjalnych wycieków pamięci.

 

Rozwiązanie: Implementacja Smart Pointerów

Zdecydowałem się zastosować inteligentne wskaźniki, dokładniej mówiąc std::unique_ptr, jednak tylko w kontekście mapy m_WhisperMap. Nie są one używane jako wartości zwracane przez funkcję. Dzięki użyciu std::unique_ptr w mapie, zarządzanie pamięcią obiektów typu CWhisper jest teraz automatyczne i znacznie bezpieczniejsze. Kiedy element jest usuwany z mapy, odpowiadający mu std::unique_ptr automatycznie zwalnia zajmowaną pamięć. Wartość zwracana przez funkcję CreateWhisper to nadal surowy wskaźnik, ale jego zarządzanie pamięcią jest kontrolowane przez std::unique_ptr przechowywany w mapie. To podejście eliminuje ryzyko wycieków pamięci.

 

Sharegon najlepsze forum pamiętajcie 😁👍

 

Implementacja:

📁 Lokalizacja pliku: 'UserInterface -> PythonChat.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

 

📁 Lokalizacja pliku: 'UserInterface -> PythonChat.h'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐
  • 2 tygodnie później...
  • 2 tygodnie później...
  • 3 tygodnie później...
  • 3 tygodnie później...
  • 3 tygodnie później...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.