diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gdriver/gdriver.c | 13 | 
1 files changed, 7 insertions, 6 deletions
| diff --git a/src/gdriver/gdriver.c b/src/gdriver/gdriver.c index c90ad8e3..116abd32 100644 --- a/src/gdriver/gdriver.c +++ b/src/gdriver/gdriver.c @@ -52,13 +52,12 @@ GDriver *gdriverRegister(const GDriverVMT *vmt, void *param) {  		return 0;  	} -	// Add it to the driver chain -	if (dhead) { +	// Add it to the driver chain (at the end) +	if (dhead)  		dtail->driverchain = pd; -		dtail = pd; -	} else { -		dhead = dtail = pd; -	} +	else +		dhead = pd; +	dtail = pd;  	// Do the post init  	if (vmt->postinit) @@ -81,6 +80,8 @@ void gdriverUnRegister(GDriver *driver) {  		for(pd = dhead; pd->driverchain; pd = pd->driverchain) {  			if (pd->driverchain == driver) {  				pd->driverchain = driver->driverchain; +				if (!pd->driverchain) +					dtail = pd;  				break;  			}  		} | 
