• [^] # Re: manque de précision

    Posté par . En réponse au message Tiled pour CatchChallenger. Évalué à 4.

    J'ajouterai que y'a des potentialité de fuite la ligne 854 fait un return sans avoir libéré l'objet temporaire, et de ce que je lis de la ligne commenté du dessus ne doit pas avoir de destructeur décent

    Utiliser un scope_ptr ou uniq_ptr me semble bien plus adapté; quitte à le release au moment de l'affecter au tableau; ça simplifie la gestion des erreurs

    Porter tout ce code en C++11 risque d'être compliqué, mais le faire pour les partie qui plantent me semblent pas une mauvaise idée.

    la encore j'ai une fuite potentielle :

    Map_full *tempMapObjectFull=new Map_full();

    le pointeur est perdu
    sauf si Map2Png::layerChangeLevelAndTagsChange(tempMapObjectFull,hideTheDoors);
    prend la possession du pointeur, mais sémantiquement y'a rien qui l'indique et à première vue, ce n'est pas le cas.

    je remarque aussi que Map2Png::~Map2Png() est intégralement commenté, si y'a des soucis lors des delete, c'est pas les commenter qui va corriger le problème, ça veut dire

    1) qu'on accède a des donnée qui ont déjà été détruite (dans le destructeur, double free)
    2) qu'on accède a des données qui ont déjà été détruite (après le passage du destructeur problème d'ownership)

    dans le vieux code 1 new -> (au moins 1) delete, si ce n'est pas le cas donner un commentaire pour l'expliquer.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent