Reinstate the trigger pointer optimization

Avoids creating a new pointer for every call of the trigger loop
Fixes associated tests this time