diff options
author | inmarket <andrewh@inmarket.com.au> | 2015-08-18 07:39:33 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2015-08-18 07:40:14 +1000 |
commit | 682503e672d5397da22ad2ecf9a8c08915e062be (patch) | |
tree | c1a4187f4fa3cc382256d0c5298e6f19ecfa8f44 /src/gdriver/gdriver.c | |
parent | 9a410b29e3929d1e1f7a4e040f4f025cdc5b42a4 (diff) | |
download | uGFX-682503e672d5397da22ad2ecf9a8c08915e062be.tar.gz uGFX-682503e672d5397da22ad2ecf9a8c08915e062be.tar.bz2 uGFX-682503e672d5397da22ad2ecf9a8c08915e062be.zip |
Another fix to gdriver
Diffstat (limited to 'src/gdriver/gdriver.c')
-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; } } |