Seperate ProgramVertex from RenderScript.java and merge ProgramVertexAlloc into the ProgramVertex class.
diff --git a/graphics/java/android/renderscript/ProgramFragment.java b/graphics/java/android/renderscript/ProgramFragment.java
index 005fdf6..c228cf2 100644
--- a/graphics/java/android/renderscript/ProgramFragment.java
+++ b/graphics/java/android/renderscript/ProgramFragment.java
@@ -26,6 +26,8 @@
  *
  **/
 public class ProgramFragment extends BaseObj {
+    public static final int MAX_SLOT = 2;
+
     public enum EnvMode {
         REPLACE (0),
         MODULATE (1),
@@ -48,17 +50,26 @@
         mID = 0;
     }
 
-    public void bindTexture(Allocation va, int slot) {
+    public void bindTexture(Allocation va, int slot)
+        throws IllegalArgumentException {
+        if((slot < 0) || (slot >= MAX_SLOT)) {
+            throw new IllegalArgumentException("Slot ID out of range.");
+        }
+
         mRS.nProgramFragmentBindTexture(mID, slot, va.mID);
     }
 
-    public void bindSampler(Sampler vs, int slot) {
+    public void bindSampler(Sampler vs, int slot)
+        throws IllegalArgumentException {
+        if((slot < 0) || (slot >= MAX_SLOT)) {
+            throw new IllegalArgumentException("Slot ID out of range.");
+        }
+
         mRS.nProgramFragmentBindSampler(mID, slot, vs.mID);
     }
 
 
     public static class Builder {
-        public static final int MAX_SLOT = 2;
         RenderScript mRS;
         Element mIn;
         Element mOut;