Ignore:
Timestamp:
07/05/09 11:43:40 (3 years ago)
Author:
sys
Message:

memLeak : purge ref au dialogue en cours.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Jav_GE/com/scenari/m/ge/donnee/WDonneeOutline.java

    r13381 r13488  
    257257        protected final synchronized void xGetValue(IHDialog pDialog, Object pOwner, Object pArguments, Writer pWriter) throws Exception { 
    258258                fWalker.setCurrentDialog((IWADialog) pDialog); 
    259                 IXmlWriter vWriter = new XmlWriterAppendable(pWriter); 
    260  
    261                 if (fResult == RESULT_TREECONTENT) { 
    262                         vWriter.writeOpenTag("treeContent"); 
    263                         if (fWalker.gotoFirstChild()) { 
    264                                 do { 
    265                                         xPublishOutlineXml(vWriter); 
    266                                 } while (fWalker.gotoNextSibling()); 
     259                try { 
     260                        IXmlWriter vWriter = new XmlWriterAppendable(pWriter); 
     261 
     262                        if (fResult == RESULT_TREECONTENT) { 
     263                                vWriter.writeOpenTag("treeContent"); 
     264                                if (fWalker.gotoFirstChild()) { 
     265                                        do { 
     266                                                xPublishOutlineXml(vWriter); 
     267                                        } while (fWalker.gotoNextSibling()); 
     268                                } 
     269                                vWriter.writeCloseTag("treeContent"); 
     270                        } else if (fResult == RESULT_PROGRESSSTATUS) { 
     271                                vWriter.writeStartTag("progressStatus"); 
     272                                int vSeen = 0; 
     273                                int vNotSeen = 0; 
     274                                fWalker.gotoRoot(); 
     275                                boolean vCurrentPassed = false; 
     276                                while (fWalker.gotoNext()) { 
     277                                        if (vCurrentPassed) { 
     278                                                vNotSeen++; 
     279                                        } else { 
     280                                                if (fWalker.getPosition() == OutlineWalker.POS_CURRENT) vCurrentPassed = true; 
     281                                                vSeen++; 
     282                                        } 
     283                                } 
     284                                if (fNumPagesToExcludeBefore > 0) { 
     285                                        vSeen -= fNumPagesToExcludeBefore; 
     286                                        if (vSeen < 0) { 
     287                                                vNotSeen += vSeen; 
     288                                                vSeen = 0; 
     289                                        } 
     290                                } 
     291                                if (fNumPagesToExcludeAfter > 0) { 
     292                                        vNotSeen -= fNumPagesToExcludeAfter; 
     293                                        if (vNotSeen < 0) { 
     294                                                vSeen += vNotSeen; 
     295                                                vNotSeen = 0; 
     296                                        } 
     297                                } 
     298                                float vRatio = (float) vSeen / (vSeen + vNotSeen); 
     299                                vWriter.writeAttribute("seen", Integer.toString(vSeen)); 
     300                                vWriter.writeAttribute("notSeen", Integer.toString(vNotSeen)); 
     301                                vWriter.writeAttribute("total", Integer.toString(vSeen + vNotSeen)); 
     302                                vWriter.writeAttribute("ratio", Float.toString(vRatio)); 
     303                                vWriter.writeAttribute("percent", Integer.toString(Math.round(vRatio * 100))); 
     304                                vWriter.writeEndEmptyTag(); 
    267305                        } 
    268                         vWriter.writeCloseTag("treeContent"); 
    269                 } else if (fResult == RESULT_PROGRESSSTATUS) { 
    270                         vWriter.writeStartTag("progressStatus"); 
    271                         int vSeen = 0; 
    272                         int vNotSeen = 0; 
    273                         fWalker.gotoRoot(); 
    274                         boolean vCurrentPassed = false; 
    275                         while (fWalker.gotoNext()) { 
    276                                 if (vCurrentPassed) { 
    277                                         vNotSeen++; 
    278                                 } else { 
    279                                         if (fWalker.getPosition() == OutlineWalker.POS_CURRENT) vCurrentPassed = true; 
    280                                         vSeen++; 
    281                                 } 
    282                         } 
    283                         if (fNumPagesToExcludeBefore > 0) { 
    284                                 vSeen -= fNumPagesToExcludeBefore; 
    285                                 if (vSeen < 0) { 
    286                                         vNotSeen += vSeen; 
    287                                         vSeen = 0; 
    288                                 } 
    289                         } 
    290                         if (fNumPagesToExcludeAfter > 0) { 
    291                                 vNotSeen -= fNumPagesToExcludeAfter; 
    292                                 if (vNotSeen < 0) { 
    293                                         vSeen += vNotSeen; 
    294                                         vNotSeen = 0; 
    295                                 } 
    296                         } 
    297                         float vRatio = (float) vSeen / (vSeen + vNotSeen); 
    298                         vWriter.writeAttribute("seen", Integer.toString(vSeen)); 
    299                         vWriter.writeAttribute("notSeen", Integer.toString(vNotSeen)); 
    300                         vWriter.writeAttribute("total", Integer.toString(vSeen + vNotSeen)); 
    301                         vWriter.writeAttribute("ratio", Float.toString(vRatio)); 
    302                         vWriter.writeAttribute("percent", Integer.toString(Math.round(vRatio * 100))); 
    303                         vWriter.writeEndEmptyTag(); 
     306                } finally { 
     307                        fWalker.setCurrentDialog(null); 
    304308                } 
    305309        } 
Note: See TracChangeset for help on using the changeset viewer.