Browse Source

distributed: PyDatagramIterator now retains reference to Datagram

Fixes #1262
rdb 3 years ago
parent
commit
c917a9e1a1
1 changed files with 15 additions and 0 deletions
  1. 15 0
      direct/src/distributed/PyDatagramIterator.py

+ 15 - 0
direct/src/distributed/PyDatagramIterator.py

@@ -30,6 +30,21 @@ class PyDatagramIterator(DatagramIterator):
 
 
     getChannel = DatagramIterator.getUint64
     getChannel = DatagramIterator.getUint64
 
 
+    def __init__(self, datagram=None, offset=0):
+        if datagram is not None:
+            super().__init__(datagram, offset)
+
+            # Retain a reference to it so that it doesn't get deleted.
+            self.__datagram = datagram
+        else:
+            super().__init__()
+
+    def getDatagram(self):
+        return self.__datagram
+
+    def get_datagram(self):
+        return self.__datagram
+
     def getArg(self, subatomicType, divisor=1):
     def getArg(self, subatomicType, divisor=1):
         # Import the type numbers
         # Import the type numbers
         if divisor == 1:
         if divisor == 1: