Browse Source

recorder: Fix error reading multiple recorders from .bam file

Modified version of #1564 without changing ABI

Fixes #1561
rdb 2 years ago
parent
commit
be958c409f

+ 2 - 4
panda/src/recorder/mouseRecorder.cxx

@@ -228,11 +228,9 @@ make_from_bam(const FactoryParams &params) {
 RecorderBase *MouseRecorder::
 RecorderBase *MouseRecorder::
 make_recorder(const FactoryParams &params) {
 make_recorder(const FactoryParams &params) {
   MouseRecorder *node = new MouseRecorder("");
   MouseRecorder *node = new MouseRecorder("");
-  DatagramIterator scan;
-  BamReader *manager;
+  BamReaderParam *param = DCAST(BamReaderParam, params.get_param(0));
 
 
-  parse_params(params, scan, manager);
-  node->fillin_recorder(scan, manager);
+  node->fillin_recorder((DatagramIterator &)param->get_iterator(), param->get_manager());
 
 
   return node;
   return node;
 }
 }

+ 2 - 4
panda/src/recorder/socketStreamRecorder.cxx

@@ -113,11 +113,9 @@ write_recorder(BamWriter *manager, Datagram &dg) {
 RecorderBase *SocketStreamRecorder::
 RecorderBase *SocketStreamRecorder::
 make_recorder(const FactoryParams &params) {
 make_recorder(const FactoryParams &params) {
   SocketStreamRecorder *node = new SocketStreamRecorder;
   SocketStreamRecorder *node = new SocketStreamRecorder;
-  DatagramIterator scan;
-  BamReader *manager;
+  BamReaderParam *param = DCAST(BamReaderParam, params.get_param(0));
 
 
-  parse_params(params, scan, manager);
-  node->fillin_recorder(scan, manager);
+  node->fillin_recorder((DatagramIterator &)param->get_iterator(), param->get_manager());
 
 
   return node;
   return node;
 }
 }