From: <ep...@us...> - 2013-11-12 15:20:57
|
Revision: 5997 http://sourceforge.net/p/jnode/svn/5997 Author: epr Date: 2013-11-12 15:20:54 +0000 (Tue, 12 Nov 2013) Log Message: ----------- Avoid nullpointer exception. Modified Paths: -------------- trunk/core/src/driver/org/jnode/driver/chipset/i440BX/i82371AB_ACPI_SMBusControler.java Modified: trunk/core/src/driver/org/jnode/driver/chipset/i440BX/i82371AB_ACPI_SMBusControler.java =================================================================== --- trunk/core/src/driver/org/jnode/driver/chipset/i440BX/i82371AB_ACPI_SMBusControler.java 2013-11-12 15:20:24 UTC (rev 5996) +++ trunk/core/src/driver/org/jnode/driver/chipset/i440BX/i82371AB_ACPI_SMBusControler.java 2013-11-12 15:20:54 UTC (rev 5997) @@ -20,8 +20,11 @@ package org.jnode.driver.chipset.i440BX; +import java.io.IOException; import java.security.PrivilegedExceptionAction; + import javax.naming.NameNotFoundException; + import org.apache.log4j.Logger; import org.jnode.driver.DeviceUtils; import org.jnode.driver.DriverException; @@ -129,12 +132,20 @@ public boolean sendByte(byte address, byte value) throws java.security.InvalidParameterException, java.lang.UnsupportedOperationException { + if (ioRes == null) { + throw new UnsupportedOperationException("IO resource not available"); + } ioRes.outPortByte(hostAddressIORegister, address | ADDRESS_WRITE_TAG); ioRes.outPortByte(hostData0IORegister, value); ioRes.outPortByte(hostCommandIORegister, value); ioRes.outPortByte(hostControlIORegister, CONTROL_START | CONTROL_PROTOCOL_READWRITE_BYTE | CONTROL_INTERUPT_DISABLED); - byte status = statusWait(); + byte status; + try { + status = statusWait(); + } catch (IOException e) { + throw new UnsupportedOperationException(e); + } return status == 0; } @@ -317,12 +328,15 @@ } - private void reset() { + private void reset() throws IOException { statusWait(); // just make sure it is available (may be errors due to last conditions so... ioRes.outPortByte(hostStatusIORegister, 0x1e); // ...clears the error bits } - private byte statusWait() { + private byte statusWait() throws IOException { + if (ioRes == null) { + throw new IOException("IO resource not available"); + } byte status = 0; for (int i = 0; i < 500; i++) ; // dumb delay : see specification update status = (byte) ioRes.inPortByte(hostStatusIORegister); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |