commit:2008:05_14
Table of Contents
Commit 2008-05-14
- Gestion de la mémoire par référence comptées (RefCounted)
Modifs
NumberedObjectdérive deRefCounted- Suppression de la commande
numberObjectSet.copy(nobj)au profit denumberObjectSet.add(nobj). Le nombre de ref est incrémenté à chaque fois que le pointeur est copié et décrémenté à chauqe fois que le pointeur est relaché. - Les objets Python sont eux aussi gérés par le processus incRef DecRef (dans les .i. Voir commit du 8 Avril)
safeCopyest remplacé parsafeAdd- Tous les objets dérivant de
refCountedet conservés doivent dorénavant être alloués (à l'aide de new). Sans quoi ils vont être détruits à l'insu du plein gré du programmateur … - les copy en interne (lorsqu'il est nécessaire d'avoir un nouvel objet) sont remplacés par la succession de la création de la copie à l'aide d'un
getCloneet ensuite de l'ajout auset- OLD : Side &newObj = getTopology().getSideSet().copy(s);
- NEW : Side &newObj = getTopology().getSideSet().add(*s.getClone());
- Gestion de memoire d'objets Python
- Un certain nombre d'objets Python perduraient via la technique
DISOWN. La gestion mémoire de ces objets a été remplacée par l'utilisateion deincRef,decRefdans les .i (voir commit du 8 Avril). Objets en question :mtALE::AleMethodmtALE::PostStepmtFEM::ValueExtractormtFEMBase::ElementPropertiesmtGeo::AxemtMath::FunctionBase
- Ajout des
incRef&decRefdans les fonctions où cela devient nécessaire
- Restructuration de
ValuesManager- La gestion des vecteurs & matrices de stoquage des valeurs utilisés par le
ValuesManagerétait pour le moins pas claire : les vecteurs étaient alloués dans leValuesManager, pointeur stoqués à la fois dans leDataVectorSetdeMetaforet dans chaqueValuesStructet objets détruits par leDataVectorSet - ⇒ Suppression du
DataVectorSetde Metafor (double stoquage inutile) - ⇒
ValuesManagerdevient unestd::map<UserNo,ValuesStruct*> - ⇒ allocation du
VectorOnFiledans leValuesManager - ⇒ stoquage - gestion mémoire & destruction dans
ValuesStruct - ⇒ Ajout de la fonction
ValuesManager.getDataVector(no)pour créer des courbes dans l'interface python. - ⇒ Suppression du
DataCurveSetdeMetafor(jamais utilisé)
Futur Works
- Utilisation de ces modifs pour appliquer les loadings via Operateurs Geometriques (but initial de la manoeuvre)
- Vérifier que lorsque l'on fait une copie dans un set on a vraiment besoin d'une copie (ALE)
Tests
- 80% modifiés !!!
- STP2E modifié !!! pour ceux qui utilisent mes libs, j'ai inclus le fichier dans
les libs (LibsVs2005_080509.rar sur le ftp de Romain) et juste l'“exe” dans le même repertoire (stp2e_080509.rar)…
- Correction de aube3 & aube3LineSearch (extraction d'energie sur rien !!!)
Projet
- up to date
ToDo list
- finir la modif de
ValuesManager(le numéro de l'extracteur) est stoqué à la fois dans le valuesManager & dans le vectorOnFile (pas fait déjà trop de modifs en cours) - gestion des
setpar objets de la STL
Fichiers ajoutés/supprimés
A R
— Luc PAPELEUX 2008/05/14
commit/2008/05_14.txt · Last modified: by 127.0.0.1
