X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=libcds%2Fsrc%2Fstatic_sequence%2Fstatic_sequence_wvtree.cpp;fp=libcds%2Fsrc%2Fstatic_sequence%2Fstatic_sequence_wvtree.cpp;h=ea6a8131358f4045ed549ba609940a9772a8eb55;hb=a9846746dc7a55764591fcc273fd48c6049df962;hp=b1353d422837585605a1dfc992a8c0513900c9df;hpb=efe894650813a19a0e1408eb5807e59f037afc3b;p=SXSI%2FXMLTree.git diff --git a/libcds/src/static_sequence/static_sequence_wvtree.cpp b/libcds/src/static_sequence/static_sequence_wvtree.cpp index b1353d4..ea6a813 100644 --- a/libcds/src/static_sequence/static_sequence_wvtree.cpp +++ b/libcds/src/static_sequence/static_sequence_wvtree.cpp @@ -1,4 +1,4 @@ -/* static_sequence_wvtree.h +/* static_sequence_wvtree.cpp * Copyright (C) 2008, Francisco Claude, all rights reserved. * * static_sequence_wvtree definition @@ -25,7 +25,9 @@ static_sequence_wvtree::static_sequence_wvtree(uint * symbols, uint n, wt_coder for(uint i=0;imap(symbols[i]); this->am = am; + am->use(); this->c=c; + c->use(); root = new wt_node_internal(symbols, n, 0, c, bmb); for(uint i=0;iunmap(symbols[i]); @@ -35,8 +37,8 @@ static_sequence_wvtree::static_sequence_wvtree() {} static_sequence_wvtree::~static_sequence_wvtree() { delete root; - delete am; - delete c; + am->unuse(); + c->unuse(); } uint static_sequence_wvtree::rank(uint symbol, uint pos) { @@ -81,7 +83,9 @@ static_sequence_wvtree * static_sequence_wvtree::load(FILE *fp) { static_sequence_wvtree * ret = new static_sequence_wvtree(); if(fread(&ret->n,sizeof(uint),1,fp)!=1) return NULL; ret->c = wt_coder::load(fp); + ret->c->use(); ret->am = alphabet_mapper::load(fp); + ret->am->use(); ret->root = wt_node::load(fp); return ret; }