[caching] introduce walk_mapping_array()
This commit is contained in:
		| @@ -58,15 +58,13 @@ invalid_mapping::visit(damage_visitor &v) const | ||||
| } | ||||
|  | ||||
| namespace { | ||||
| 	class mapping_visitor { | ||||
| 	class check_mapping_visitor : public mapping_visitor { | ||||
| 	public: | ||||
| 		mapping_visitor(damage_visitor &visitor) | ||||
| 		check_mapping_visitor(damage_visitor &visitor) | ||||
| 		: visitor_(visitor) { | ||||
| 		} | ||||
|  | ||||
| 		virtual void visit(uint32_t index, mapping const &m) { | ||||
| 			block_address cblock = index; | ||||
|  | ||||
| 		virtual void visit(block_address cblock, mapping const &m) { | ||||
| 			if (!valid_mapping(m)) | ||||
| 				return; | ||||
|  | ||||
| @@ -116,11 +114,19 @@ namespace { | ||||
| } | ||||
|  | ||||
| void | ||||
| caching::check_mapping_array(mapping_array const &array, damage_visitor &visitor) | ||||
| caching::walk_mapping_array(mapping_array const &array, | ||||
| 			    mapping_visitor &mv, | ||||
| 			    damage_visitor &dv) | ||||
| { | ||||
| 	mapping_visitor mv(visitor); | ||||
| 	ll_damage_visitor ll(visitor); | ||||
| 	ll_damage_visitor ll(dv); | ||||
| 	array.visit_values(mv, ll); | ||||
| } | ||||
|  | ||||
| void | ||||
| caching::check_mapping_array(mapping_array const &array, damage_visitor &visitor) | ||||
| { | ||||
| 	check_mapping_visitor mv(visitor); | ||||
| 	walk_mapping_array(array, mv, visitor); | ||||
| } | ||||
|  | ||||
| //---------------------------------------------------------------- | ||||
|   | ||||
		Reference in New Issue
	
	Block a user