png_jmpbuf used to be a macro that accessed fields of png structures directly. In 1.4.0 it was apparently changed to call png_set_longjmp_fn.
This is probably because the png developers hate that programmers can directly access fields in their structures. As I recall, they whine about this frequently in their manual.
Unfortunately, png_set_longjmp_fn was introduced in 1.4.0. As far as I can tell, there is no function present in both versions that we could call to do this, and of course we can't access the field directly in 1.4.
Maybe we could use png_set_error_fn instead and do the longjmp in the error function? Does that make sense?