Bug in 5.1.x al_set_standard_file_interface
jmasterx

I think this is a bug...

the physfs version calls:

void al_set_physfs_file_interface(void)
{
   al_set_new_file_interface(&file_phys_vtable);
   _al_set_physfs_fs_interface();
}

Which leadds to setting the actual interface:

void _al_set_physfs_fs_interface(void)
{
   al_set_fs_interface(&fs_phys_vtable);
}

But, setting the standard one only sets new interface:

/* Function: al_set_standard_file_interface
 */
void al_set_standard_file_interface(void)
{
   al_set_new_file_interface(&_al_file_interface_stdio);
}

For whatever reason, when I trace everything, the fs_interface is never set when calling al_set_standard_fs_interface.

Peter Wang

I consider this a bug in the PhysFS addon.

jmasterx

I'm not sure how it is all supposed to function but, the function to get the current filesystem interface resurns fs_interface and not new_fs_interface. I'm not quite sure what new_fs_interface is used for. I noticed that when setting the physfs one, it sets both new_fs_interface and fs_interface variables of the tls object while calling set standard file interface only sets new_fs_interface. That is what lead me to believe standard file interface was incorrect, but it could be PhysFS that should only be setting the new interface variable.

Thread #613596. Printed from Allegro.cc