BYI23QWI44ZINCI32VLVG2JJG3WUZFCYEKNNNLLMXMWQCTKZ6PRAC SYURNHHL3P22ZAERTML4YW3DYLATHY5ALZH4GL5NF3LENDSKL2NQC UAQX27N4PI4LHEW6LSHJETIE5MV7JTEMPLTJFYUBMYVPC43H7VOAC W2MIZD5BNL7A5HVFWTESF57QU7T6QMEF4RBSLFQXMEEU3XD2NU2QC DASFQGORX56YK5E4Y7GGYZSQQQMUXYTZZ4A6IVWSTI3QGRUORLPAC YWFYZNLZ5JHLIFVBRKZK4TSWVPROUPRG77ZB5M7UHT2OKPL4ZSRQC OTWDDJE7TTE73D6BGF4ZN6BH2NFUFLPME2VJ3CPALH463UGWLEIQC 6DCQHIFPEH4GZKSRRS32GMKDRPZH4MTCGOUEI7YEUVKWENBF3JWAC 6DMPXOAT5GQ3BQQOMUZN2GMBQPRA4IB7CCPHTQTIFGO3KWWAKF3QC FZBLNBGNQPNTLBNPNZ2C6DJ5323MZQ2PH54F6ZEKPFCK7TGJFGWAC X3QVVQIS7B7L3XYZAWL3OOBUXOJ6RMOKQ45YMLLGAHYPEEKZ45ZAC MSRWB47YP6L5BVTS53QQPBOHY5SXTSTR5KD6IIF35UWCTEUOCQWQC Q7DRIBBRE4MNG4NP3PVIXAJF5PQYLFWYIVK2O4VVLEO6XY3BOSFQC G4JEQLLX6Q7VVFVAEJZAVQXX33MQ36CSCYSMJ5NQM5VZ76DXKU6QC E4MD6T3LNOYWVFTFFWCUKRNS4M2XVSKRLDWPYHMZHGDNO2T5JREQC 5LSYTRQ6IOVUW26VJW5SWGFEIB7T2N4PVEB6VMNMR5ZHQ75MFOQAC EYNN7RLSFVBWDLRTLNNFUAF46Q6OX3BR5SUEJIOOHBSNP7FVBXGAC KX3WVNZW5KHVEH6EOQTZ4RBEFFJ3SGF5I467X3JWZ74PURRK4HVAC OFINGD26ZWCRDVVDI2ZIBLMHXKEMJA6MRNLANJYUHQPIJLPA7J2AC T7QB6QEPWBXAU3RL7LE4GRDWWNQ65ZU2YNNTWBYLORJOABAQFEZQC txn.commit().unwrap();let mut txn = Env::mut_txn_begin(&env).unwrap();let mut refs = BTreeMap::new();add_free_refs_mut(&txn, &mut refs).unwrap();add_refs(&txn, &db, &mut refs).unwrap();add_refs(&txn, &db2, &mut refs).unwrap();check_free_mut(&mut txn, &refs);check_refs(&txn, &refs);
del(&mut txn, &mut db, &((i * i) % 1_000), None).unwrap();}txn.commit().unwrap();let mut txn = Env::mut_txn_begin(&env).unwrap();let mut refs = BTreeMap::new();add_free_refs_mut(&txn, &mut refs).unwrap();check_free_mut(&mut txn, &refs);check_refs(&txn, &refs);}#[test]pub fn u64_large_revdel() {env_logger::try_init().unwrap_or(());let env = Env::new_anon(409600000, 1).unwrap();let mut txn = Env::mut_txn_begin(&env).unwrap();let mut db: Db<u64, A> = create_db(&mut txn).unwrap();let n = 40u64;let a = A([0; 100]);for i in 0..n {put(&mut txn, &mut db, &i, &a).unwrap();}debug(&txn, &[&db], "debug0", true);for i in (0..n).rev() {
txn.set_root(0, db.db);txn.commit().unwrap();let mut txn = Env::mut_txn_begin(&env).unwrap();let mut refs = BTreeMap::new();let db: Db<u64, u64> = txn.root_db(0).unwrap();add_refs(&txn, &db, &mut refs).unwrap();add_free_refs_mut(&txn, &mut refs).unwrap();check_refs(&txn, &refs);check_free_mut(&mut txn, &refs);
txn.set_root(0, db.db);txn.commit().unwrap();let mut txn = Env::mut_txn_begin(&env).unwrap();let mut refs = BTreeMap::new();let db: Db<u64, ()> = txn.root_db(0).unwrap();add_refs(&txn, &db, &mut refs).unwrap();add_free_refs_mut(&txn, &mut refs).unwrap();check_refs(&txn, &refs);check_free_mut(&mut txn, &refs);
txn.set_root(0, db.db);txn.set_root(1, db2.db);txn.commit().unwrap();let mut txn = Env::mut_txn_begin(&env).unwrap();let mut refs = BTreeMap::new();let db: Db<u64, A> = txn.root_db(0).unwrap();let db2: Db<u64, A> = txn.root_db(1).unwrap();add_refs(&txn, &db, &mut refs).unwrap();add_refs(&txn, &db2, &mut refs).unwrap();add_free_refs_mut(&txn, &mut refs).unwrap();check_refs(&txn, &refs);check_free_mut(&mut txn, &refs);
txn.set_root(0, db.db);txn.set_root(1, db2.db);txn.commit().unwrap();let mut txn = Env::mut_txn_begin(&env).unwrap();let mut refs = BTreeMap::new();add_refs(&txn, &db, &mut refs).unwrap();add_refs(&txn, &db2, &mut refs).unwrap();add_free_refs_mut(&txn, &mut refs).unwrap();check_refs(&txn, &refs);check_free_mut(&mut txn, &refs);