From 5a2c33423abbd32efd5dd284d8a21cd319c6ab91 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Wed, 11 Apr 2007 16:13:05 +0000 Subject: [PATCH] Moved null check from generated code to BufferChecks and removed unused buffer checks --- src/java/org/lwjgl/BufferChecks.java | 62 ++++++++----------- .../util/generator/JavaMethodsGenerator.java | 11 ++-- 2 files changed, 31 insertions(+), 42 deletions(-) diff --git a/src/java/org/lwjgl/BufferChecks.java b/src/java/org/lwjgl/BufferChecks.java index ad5a4ab9..392ac862 100644 --- a/src/java/org/lwjgl/BufferChecks.java +++ b/src/java/org/lwjgl/BufferChecks.java @@ -124,23 +124,6 @@ public class BufferChecks { /** * Helper methods to ensure a buffer is direct (and, implicitly, non-null). */ - public static void checkDirectBuffer(Buffer buf) { - if (buf instanceof FloatBuffer) - checkDirect((FloatBuffer)buf); - else if (buf instanceof ByteBuffer) - checkDirect((ByteBuffer)buf); - else if (buf instanceof ShortBuffer) - checkDirect((ShortBuffer)buf); - else if (buf instanceof IntBuffer) - checkDirect((IntBuffer)buf); - else if (buf instanceof LongBuffer) - checkDirect((LongBuffer)buf); - else if (buf instanceof DoubleBuffer) - checkDirect((DoubleBuffer)buf); - else - throw new IllegalStateException("Unsupported buffer type"); - } - public static void checkDirect(ByteBuffer buf) { if (!buf.isDirect()) { throw new IllegalArgumentException("ByteBuffer is not direct"); @@ -231,36 +214,41 @@ public class BufferChecks { } /** - * Helper methods to ensure a buffer is big enough to receive data from a - * glGet* operation. To avoid unnecessarily complex buffer size checking - * we've just set the bar artificially high and insist that any receiving - * buffer has at least 4 remaining(). - * - * @param buf - * The buffer to check - * @throws IllegalArgumentException + * Helper methods to ensure a buffer is direct, has a minimum size or null. */ - public static void checkBuffer(ByteBuffer buf) { - checkBuffer(buf, DEFAULT_BUFFER_SIZE); + public static void checkBufferOrNull(ByteBuffer buf, int size) { + if (buf != null) { + checkBuffer(buf, size); + } } - public static void checkBuffer(ShortBuffer buf) { - checkBuffer(buf, DEFAULT_BUFFER_SIZE); + public static void checkBufferOrNull(ShortBuffer buf, int size) { + if (buf != null) { + checkBuffer(buf, size); + } } - public static void checkBuffer(IntBuffer buf) { - checkBuffer(buf, DEFAULT_BUFFER_SIZE); + public static void checkBufferOrNull(IntBuffer buf, int size) { + if (buf != null) { + checkBuffer(buf, size); + } } - public static void checkBuffer(LongBuffer buf) { - checkBuffer(buf, DEFAULT_BUFFER_SIZE); + public static void checkBufferOrNull(LongBuffer buf, int size) { + if (buf != null) { + checkBuffer(buf, size); + } } - public static void checkBuffer(FloatBuffer buf) { - checkBuffer(buf, DEFAULT_BUFFER_SIZE); + public static void checkBufferOrNull(FloatBuffer buf, int size) { + if (buf != null) { + checkBuffer(buf, size); + } } - public static void checkBuffer(DoubleBuffer buf) { - checkBuffer(buf, DEFAULT_BUFFER_SIZE); + public static void checkBufferOrNull(DoubleBuffer buf, int size) { + if (buf != null) { + checkBuffer(buf, size); + } } } diff --git a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java index 3d44c424..d8ad946c 100644 --- a/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java +++ b/src/java/org/lwjgl/util/generator/JavaMethodsGenerator.java @@ -437,15 +437,16 @@ public class JavaMethodsGenerator { } private static void printParameterCheck(PrintWriter writer, String name, String check_value, boolean can_be_null, boolean null_terminated) { - if (can_be_null) { - writer.println("\t\tif (" + name + " != null)"); - writer.print("\t"); - } writer.print("\t\tBufferChecks.check"); if (check_value != null && !"".equals(check_value) ) { - writer.print("Buffer(" + name + ", " + check_value); + writer.print("Buffer"); + if (can_be_null) + writer.print("OrNull"); + writer.print("(" + name + ", " + check_value); } else { writer.print("Direct"); + if (can_be_null) + writer.print("OrNull"); writer.print("(" + name); } writer.println(");");