Lines Matching refs:bag

856    WordBag* bag = alloc_nofail(cc, sizeof(WordBag));
857 bag->fm = VG_(newFM)( alloc_nofail, cc, dealloc, NULL );
858 return bag;
861 void VG_(deleteBag) ( WordBag* bag )
863 void (*dealloc)(void*) = bag->fm->dealloc;
864 VG_(deleteFM)( bag->fm, NULL, NULL );
865 VG_(memset)(bag, 0, sizeof(WordBag));
866 dealloc(bag);
869 void VG_(addToBag)( WordBag* bag, UWord w )
872 if (VG_(lookupFM)(bag->fm, &key, &count, w)) {
875 VG_(addToFM)(bag->fm, w, count+1);
877 VG_(addToFM)(bag->fm, w, 1);
881 UWord VG_(elemBag) ( WordBag* bag, UWord w )
884 if (VG_(lookupFM)( bag->fm, &key, &count, w)) {
893 UWord VG_(sizeUniqueBag) ( WordBag* bag )
895 return VG_(sizeFM)( bag->fm );
909 UWord VG_(sizeTotalBag)( WordBag* bag )
911 if (bag->fm->root)
912 return sizeTotalBag_wrk(bag->fm->root);
917 Bool VG_(delFromBag)( WordBag* bag, UWord w )
920 if (VG_(lookupFM)(bag->fm, &key, &count, w)) {
924 VG_(addToFM)(bag->fm, w, count-1);
927 VG_(delFromFM)( bag->fm, NULL, NULL, w );
935 Bool VG_(isEmptyBag)( WordBag* bag )
937 return VG_(sizeFM)(bag->fm) == 0;
940 Bool VG_(isSingletonTotalBag)( WordBag* bag )
943 if (VG_(sizeFM)(bag->fm) != 1)
945 nd = bag->fm->root;
952 UWord VG_(anyElementOfBag)( WordBag* bag )
954 /* Return an arbitrarily chosen element in the bag. We might as
956 AvlNode* nd = bag->fm->root;
957 tl_assert(nd); /* if this fails, 'bag' is empty - caller is in error. */
962 void VG_(initIterBag)( WordBag* bag )
964 VG_(initIterFM)(bag->fm);
967 Bool VG_(nextIterBag)( WordBag* bag, /*OUT*/UWord* pVal, /*OUT*/UWord* pCount )
969 return VG_(nextIterFM)( bag->fm, pVal, pCount );
972 void VG_(doneIterBag)( WordBag* bag )
974 VG_(doneIterFM)( bag->fm );