Patch #1599 has been updated.
Project:
Category: libstore
Status: Closed
Summary: store_typed_open on file name doesn't call store_open
Follow-Ups:
Date: Thu 07/31/2003 at 23:17
By: marcus
Comment:
This patch is definitely wrong. The code should do the following:
FOO:BAR - Open the class FOO with parameter BAR
FOO: - Open the class FOO with no parameter
:BAR - Open the file BAR (with store_open)
BAZ - Try to find a class BAZ, and open that with no parameter, but if class is not
found, open file BAZ with store_open.
Look at the code:
const char *clname_end = strchrnul (name, ':');
if (clname_end == name)
/* Open NAME with store_open. */
return store_open (name + 1, flags, classes, store);
This covers the ":BAR" case. You make the code look in that case for a class "".
Then come all the other cases, which (potentially) start with a class name. So we
search for classes, either in the statically linked list, or by dynamically loading a
library with that class.
Only if that fails, and there is no ':', then we know we have a BAZ case where BAZ is
not a class, but a file. Then open the file.
I think the only bug here is that the dynamic loading mechanism segfaults, which you
probably have fixed with your linker change. So I am closing this. If I overlooked
something, we can reopen it.
-------------------------------------------------------
-------------------------------------------------------
For more info, visit:
http://savannah.gnu.org/patch/?func=detailpatch&patch_id=1599&group_id=30
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd