Changeset 301

Show
Ignore:
Timestamp:
04/23/08 11:58:53 (7 months ago)
Author:
h3r3tic
Message:

memoryUsage /= 2;

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ddl/DynamicLibrary.d

    r288 r301  
    106106    */ 
    107107    public ubyte[] getResource(char[] name); 
     108     
     109     
     110    public void makePrivate() { 
     111    } 
    108112     
    109113         
  • trunk/ddl/DynamicModule.d

    r224 r301  
    147147    */ 
    148148    public bool isLinking; 
     149     
     150     
     151    public void makePrivate() { 
     152    } 
     153 
    149154} 
    150155 
  • trunk/ddl/ExpContainer.d

    r260 r301  
    8282    } 
    8383     
     84    public void deleteData() { 
     85        delete data; 
     86        len = 0; 
     87    } 
     88     
    8489    public ContainerType opCatAssign(BaseType elem){ 
    8590        if(this.length < data.length){ 
  • trunk/ddl/omf/OMFBinary.d

    r299 r301  
    884884     
    885885    static char[][uint] recordNameLookup; 
     886     
     887     
     888    void deleteData() { 
     889        delete impdefs; 
     890        delete weakExterns; 
     891        delete externs; 
     892        delete publics; 
     893        delete lineNumbers; 
     894        delete segments; 
     895        delete groups; 
     896        fixups.deleteData(); 
     897        delete iteratedData; 
     898        delete enumeratedData; 
     899        delete communalDefinitions; 
     900        delete communalExterns; 
     901        delete communalData; 
     902        delete comdatLineNumbers; 
     903         
     904        delete names; 
     905        delete externNames; 
     906         
     907        delete defaultLibSearch; 
     908    } 
     909     
    886910     
    887911    static this(){ 
  • trunk/ddl/omf/OMFLibrary.d

    r299 r301  
    3838private import tango.io.model.IConduit; 
    3939 
     40import tango.io.Stdout; 
     41 
    4042class OMFLibrary : DynamicLibrary{ 
    4143    DynamicModule[] modules; 
     
    9597        return (ubyte[]).init; 
    9698    } 
     99     
     100     
     101    public override void makePrivate() { 
     102        foreach (mod; modules) { 
     103            mod.makePrivate(); 
     104        } 
     105        crossReference = crossReference.init; 
     106    } 
     107 
    97108     
    98109    package void addModule(OMFModule mod){ 
  • trunk/ddl/omf/OMFModule.d

    r300 r301  
    6666    ExportSymbol[] symbols; 
    6767    char[] moduleName; 
     68    char[] symNamesBuffer; 
    6869    bool resolved; 
     70 
     71 
     72    public override void makePrivate() { 
     73        delete fixups; 
     74        delete symbols; 
     75        delete symNamesBuffer; 
     76    } 
     77     
    6978     
    7079    this(FileBuffer buffer){ 
     
    191200        } 
    192201        resolved = true; 
     202         
    193203        return true; 
    194204    } 
     
    471481        // Pack all symbol names together into a new buffer 
    472482         
    473         char[] symNamesBuffer; 
    474483        size_t totalSymNameLength = 0; 
    475484        foreach (sym; symbols) { 
     
    484493            name2[] = sym.name[]; 
    485494            sym.name = name2; 
     495        } 
     496         
     497        debug{} else{ 
     498            binary.deleteData(); 
    486499        } 
    487500