﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	revision
462	Extended run time checking in debug mode	Alpar Juttner	Alpar Juttner	"When using more graph instances of the same time (e.g. `ListDigraph`) in a code, it is a very common error that a `Node` or `Arc` is used with a different graph that they actually belong to. For example a `NodeMap` may be indexed by a node belonging to another graph. These kind of errors remain hidden during the compilation.

I propose adding a pointer to the owner graph to each `Node` and `Arc` objects, and check their the validity of the relevant graph and map operations. This feature would be turned on ''in debug mode only''.

Two things are worth checking:
- The item should belong to the corresponding graph
- The item should be valid (i.e. not `INVALID` and point to an existing item)


Here is a --- maybe incomplete --- list where checking could be made:

- `source()`, `target()`, `u()`, `v()`, `runningNode()`, `baseNode()`
- `id()`
- constructors of the iterators
- `operator++()` of the iterators (validity check only)
- `*Map<>::operator[]()'`, `*Map<>::set()'`,
- `changeSource()`, `changeTarget()`, `reverse()`"	enhancement	new	major	LEMON 1.4 release	core	hg main				
