- native bullet: add some checks to physics space and physics vehicle

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8410 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
nor..67 13 years ago
parent 0a11431b21
commit 20c5994db4
  1. 3
      engine/src/bullet/native/com_jme3_bullet_PhysicsSpace.cpp
  2. 12
      engine/src/bullet/native/com_jme3_bullet_objects_PhysicsVehicle.cpp

@ -390,6 +390,9 @@ extern "C" {
JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_finalizeNative
(JNIEnv * env, jobject object, jlong spaceId) {
jmePhysicsSpace* space = (jmePhysicsSpace*) spaceId;
if (space == NULL) {
return;
}
delete(space);
}

@ -67,6 +67,7 @@ extern "C" {
JNIEXPORT jlong JNICALL Java_com_jme3_bullet_objects_PhysicsVehicle_createVehicleRaycaster
(JNIEnv *env, jobject object, jlong bodyId, jlong spaceId) {
//btRigidBody* body = (btRigidBody*) bodyId;
jmeClasses::initJavaClasses(env);
jmePhysicsSpace *space = (jmePhysicsSpace *)spaceId;
if (space == NULL) {
jclass newExc = env->FindClass("java/lang/NullPointerException");
@ -84,6 +85,7 @@ extern "C" {
*/
JNIEXPORT jlong JNICALL Java_com_jme3_bullet_objects_PhysicsVehicle_createRaycastVehicle
(JNIEnv *env, jobject object, jlong objectId, jlong casterId) {
jmeClasses::initJavaClasses(env);
btRigidBody* body = (btRigidBody*) objectId;
if (body == NULL) {
jclass newExc = env->FindClass("java/lang/NullPointerException");
@ -92,6 +94,11 @@ extern "C" {
}
body->setActivationState(DISABLE_DEACTIVATION);
btVehicleRaycaster* caster = (btDefaultVehicleRaycaster*) casterId;
if (caster == NULL) {
jclass newExc = env->FindClass("java/lang/NullPointerException");
env->ThrowNew(newExc, "The native object does not exist.");
return 0;
}
btRaycastVehicle::btVehicleTuning tuning;
btRaycastVehicle* vehicle = new btRaycastVehicle(tuning, body, caster);
return (long) vehicle;
@ -250,6 +257,11 @@ extern "C" {
return;
}
delete(vehicle);
if (rayCaster == NULL) {
jclass newExc = env->FindClass("java/lang/NullPointerException");
env->ThrowNew(newExc, "The native object does not exist.");
return;
}
delete(rayCaster);
}

Loading…
Cancel
Save