+ /* Keep track of the all time best. */
+ if ((p->fittest.ptr == NULL) || (p->fittest.rating > pi_rating))
+ {
+ void *temp;
+
+ temp = p->copy (pi);
+ if (temp != NULL)
+ {
+ if (p->fittest.ptr != NULL)
+ p->free (p->fittest.ptr);
+ p->fittest.ptr = temp;
+ p->fittest.rating = pi_rating;
+ }
+ }
+