Browse Source

gobj: fix crash with ShaderBuffer

rdb 8 years ago
parent
commit
540122e703
3 changed files with 14 additions and 2 deletions
  1. 4 2
      panda/src/gobj/shaderBuffer.I
  2. 8 0
      panda/src/gobj/shaderBuffer.cxx
  3. 2 0
      panda/src/gobj/shaderBuffer.h

+ 4 - 2
panda/src/gobj/shaderBuffer.I

@@ -19,7 +19,8 @@ INLINE ShaderBuffer::
 ShaderBuffer(const string &name, uint64_t size, UsageHint usage_hint) :
   Namable(name),
   _data_size_bytes(size),
-  _usage_hint(usage_hint) {
+  _usage_hint(usage_hint),
+  _contexts(nullptr) {
 }
 
 /**
@@ -31,7 +32,8 @@ ShaderBuffer(const string &name, pvector<unsigned char> initial_data, UsageHint
   Namable(name),
   _data_size_bytes(initial_data.size()),
   _usage_hint(usage_hint),
-  _initial_data(initial_data) {
+  _initial_data(initial_data),
+  _contexts(nullptr) {
 }
 
 /**

+ 8 - 0
panda/src/gobj/shaderBuffer.cxx

@@ -16,6 +16,14 @@
 
 TypeHandle ShaderBuffer::_type_handle;
 
+/**
+ * Destructor.
+ */
+ShaderBuffer::
+~ShaderBuffer() {
+  release_all();
+}
+
 /**
  *
  */

+ 2 - 0
panda/src/gobj/shaderBuffer.h

@@ -32,6 +32,8 @@ private:
   INLINE ShaderBuffer() DEFAULT_CTOR;
 
 PUBLISHED:
+  ~ShaderBuffer();
+
   INLINE explicit ShaderBuffer(const string &name, uint64_t size, UsageHint usage_hint);
   INLINE explicit ShaderBuffer(const string &name, pvector<unsigned char> initial_data, UsageHint usage_hint);