*/
public List<ClassInfo> weave(List<ClassInfo> classes) throws KilimException {
// save the detector attached to this thread, if any. It will be restored
// later.
ArrayList<ClassInfo> ret = new ArrayList<ClassInfo>(classes.size());
Detector origDetector = Detector.getDetector();
Detector.setDetector(detector); // / set thread local detector.
try {
// First cache all the method signatures from the supplied classes to allow
// the weaver to lookup method signatures from mutually recursive classes.
for (ClassInfo cl : classes) {