diff options
author | Jack Palevich <jackpal@google.com> | 2009-10-21 11:02:44 -0700 |
---|---|---|
committer | Jack Palevich <jackpal@google.com> | 2009-10-21 11:02:44 -0700 |
commit | c620a52b69a5f29563e06497e30877809f5d67a5 (patch) | |
tree | b0771555e1063ed4653cdfc454a209998a236bb0 /opengl/tools/glgen/src | |
parent | d443ba4534b88fe6dfd3bd8f1dd1dc8451ed6734 (diff) | |
download | frameworks_base-c620a52b69a5f29563e06497e30877809f5d67a5.zip frameworks_base-c620a52b69a5f29563e06497e30877809f5d67a5.tar.gz frameworks_base-c620a52b69a5f29563e06497e30877809f5d67a5.tar.bz2 |
Add size checks for glBufferData and glBufferSubData
Without the size checks it's possible for calls to glBufferData
and glBufferSubData to read off the end of the Buffer object's
data, which can cause page faults.
Fix end-of-line characters for the "spec" files. (That's why
every line of these files is changed.)
Enhance our code emitter to properly handle bounds checks for
possibly-null pointers.
Diffstat (limited to 'opengl/tools/glgen/src')
-rw-r--r-- | opengl/tools/glgen/src/JniCodeEmitter.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/opengl/tools/glgen/src/JniCodeEmitter.java b/opengl/tools/glgen/src/JniCodeEmitter.java index 7340357..2cdb244 100644 --- a/opengl/tools/glgen/src/JniCodeEmitter.java +++ b/opengl/tools/glgen/src/JniCodeEmitter.java @@ -893,7 +893,7 @@ public class JniCodeEmitter { ") getDirectBufferPointer(_env, " + cname + "_buf);"); String iii = " "; - out.println(iii + indent + "if ( ! " + cname + " ) {"); + out.println(iii + indent + "if ( ! " + cname + " ) {"); out.println(iii + iii + indent + "return;"); out.println(iii + indent + "}"); } else { @@ -907,13 +907,13 @@ public class JniCodeEmitter { ");"); } + emitNativeBoundsChecks(cfunc, cname, out, true, + emitExceptionCheck, + offset, remaining, nullAllowed ? " " : " "); + if (nullAllowed) { out.println(indent + "}"); } - - emitNativeBoundsChecks(cfunc, cname, out, true, - emitExceptionCheck, - offset, remaining, " "); } } } |