arduino / arduino/ArduinoCore-API
Missing virtual destructor for `Print` class
- Langage dominant
- C++
- Étoiles
- 306
- Forks
- 150
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
### Description
Missing virtual destructor - memory leak and UB
### Environment
First found on R4, but it is general
### Current behavior
Warning while compiling sketch, possible UB.
```
packages/arduino/hardware/renesas_uno/1.5.0/libraries/WiFiS3/src/Modem.cpp: In destructor 'ModemClass::~ModemClass()':
packages/arduino/hardware/renesas_uno/1.5.0/libraries/WiFiS3/src/Modem.cpp:27:14: warning: deleting object of polymorphic
class type 'UART' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor]
delete _serial;
```
ModemClass extends Serial which extends Print.
### Expected behavior
no warnings
### Additional information
This class is very base class of all streams and other i/o components.
https://github.com/arduino/ArduinoCore-API/blob/4a02bfc0a924e1fec34c3bb82ffd5dfba7643a0c/api/Print.h#L35
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Lisez la déclaration référencée dans api/Print.h et examinez la pull request liée #218 afin de comprendre la modification proposée. C’est terminé lorsque l’exemple Modem.cpp ne produit plus l’avertissement concernant un destructeur non virtuel ni la préoccupation associée liée à un comportement indéfini.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- api, embedded-iot
- Type d'issue
- Bug
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 30/100