bool AspEventHandler::UpdateConflictEdges(AccessBase* access, AccessBasePtrList* accesses) {
	bool conflicting = false;
	ADDRINT mem = access->mem();
	if(accesses != NULL) {
		assert(accesses->size() > 0);
		Transaction* tx = access->tx();
		// record last accesses in the transaction graph
		for(AccessBasePtrList::iterator itr = accesses->begin(); itr < accesses->end(); ++itr) {
			AccessBase* lastAccess = (*itr);
			assert(lastAccess->mem() == mem);
			conflicting = conflicting || lastAccess->conflicts_with(access);
			if(conflicting) {
				// add a conflict edge
				Transaction* lastTx = lastAccess->tx();
				assert(lastTx != NULL);
				if(lastTx->conflicts_with(tx)) {
					lastTx->AddConflictEdge(lastAccess, access);
				}
			} else {
				break;
			}
		}
	}
	return conflicting;
}