From: Geoffrey F. <fu...@us...> - 2001-05-26 21:20:14
|
Update of /cvsroot/plplot/plplot/src In directory usw-pr-cvs1:/tmp/cvs-serv15572 Modified Files: Tag: dyndrv_1 plcore.c Log Message: Reworked the initialization of the dispatch table. Instead of copying over the static tables, we instead walk a statically defined list of configured drivers. For each, we call the device specific dispatch table initialization function to get the dispatch table wired up. Finally, the dynloader was reworked so that it only pulls out the one function name for the device-specific dispatch initialization function from each driver. This function is then called, passing in the dispatch table that needs to be filled in. This means we only use the dynamic symbol search facility to extract a single symbol from the driver per dynloadable device. This is simpler than the old system, in which the dynloader itself would lookup the symbols for all the dispatch init functions. That scheme suffered however from making it hard to share common driver functions between multiple devices (in the same driver). The new scheme makes it easy for drivers to share common canonical driver entry functions between multiple distinct devices associated with the same dynloadable driver. |