don't try to read from NULL pointer

This commit is contained in:
marschap
2007-10-21 16:08:56 +00:00
parent c9b2b1757b
commit 75dbe30705
+10 -3
View File
@@ -423,10 +423,10 @@ HD44780_close(Driver *drvthis)
{ {
PrivateData *p = (PrivateData *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
if (p->hd44780_functions->close)
p->hd44780_functions->close(p);
if (p != NULL) { if (p != NULL) {
if (p->hd44780_functions->close)
p->hd44780_functions->close(p);
if (p->framebuf) if (p->framebuf)
free(p->framebuf); free(p->framebuf);
@@ -445,6 +445,7 @@ MODULE_EXPORT int
HD44780_width(Driver *drvthis) HD44780_width(Driver *drvthis)
{ {
PrivateData *p = (PrivateData *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
return p->width; return p->width;
} }
@@ -455,6 +456,7 @@ MODULE_EXPORT int
HD44780_height(Driver *drvthis) HD44780_height(Driver *drvthis)
{ {
PrivateData *p = (PrivateData *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
return p->height; return p->height;
} }
@@ -465,6 +467,7 @@ MODULE_EXPORT int
HD44780_cellwidth(Driver *drvthis) HD44780_cellwidth(Driver *drvthis)
{ {
PrivateData *p = (PrivateData *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
return p->cellwidth; return p->cellwidth;
} }
@@ -475,6 +478,7 @@ MODULE_EXPORT int
HD44780_cellheight(Driver *drvthis) HD44780_cellheight(Driver *drvthis)
{ {
PrivateData *p = (PrivateData *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
return p->cellheight; return p->cellheight;
} }
@@ -592,6 +596,7 @@ MODULE_EXPORT void
HD44780_clear(Driver *drvthis) HD44780_clear(Driver *drvthis)
{ {
PrivateData *p = (PrivateData *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
memset(p->framebuf, ' ', p->width * p->height); memset(p->framebuf, ' ', p->width * p->height);
p->ccmode = standard; p->ccmode = standard;
} }
@@ -603,6 +608,7 @@ MODULE_EXPORT void
HD44780_chr(Driver *drvthis, int x, int y, char ch) HD44780_chr(Driver *drvthis, int x, int y, char ch)
{ {
PrivateData *p = (PrivateData *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
y--; y--;
x--; x--;
@@ -638,6 +644,7 @@ MODULE_EXPORT void
HD44780_backlight(Driver *drvthis, int on) HD44780_backlight(Driver *drvthis, int on)
{ {
PrivateData *p = (PrivateData *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
p->hd44780_functions->backlight (p, on); p->hd44780_functions->backlight (p, on);
} }