Mercurial > hg > truffle
changeset 4051:f350490a45fd
7105611: Set::print() is broken
Summary: Reimplemented class VSetI_ to restore Set::print().
Reviewed-by: never
author | kvn |
---|---|
date | Thu, 27 Oct 2011 18:20:50 -0700 |
parents | 34535d2cb362 |
children | eba044a722a4 |
files | src/share/vm/libadt/vectset.cpp src/share/vm/libadt/vectset.hpp |
diffstat | 2 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/libadt/vectset.cpp Thu Oct 27 14:40:25 2011 -0700 +++ b/src/share/vm/libadt/vectset.cpp Thu Oct 27 18:20:50 2011 -0700 @@ -350,6 +350,21 @@ return (int)_xor; } +//------------------------------iterate---------------------------------------- +// Used by Set::print(). +class VSetI_ : public SetI_ { + VectorSetI vsi; +public: + VSetI_( const VectorSet *vset, uint &elem ) : vsi(vset) { elem = vsi.elem; } + + uint next(void) { ++vsi; return vsi.elem; } + int test(void) { return vsi.test(); } +}; + +SetI_ *VectorSet::iterate(uint &elem) const { + return new(ResourceObj::C_HEAP) VSetI_(this, elem); +} + //============================================================================= //------------------------------next------------------------------------------- // Find and return the next element of a vector set, or return garbage and
--- a/src/share/vm/libadt/vectset.hpp Thu Oct 27 14:40:25 2011 -0700 +++ b/src/share/vm/libadt/vectset.hpp Thu Oct 27 18:20:50 2011 -0700 @@ -151,7 +151,7 @@ private: - SetI_ *iterate(uint&) const { ShouldNotCallThis(); return NULL; } // Removed + SetI_ *iterate(uint&) const; }; //------------------------------Iteration--------------------------------------