Browse Source

Put 'alsarawmidi' Poll code inline, as it's only called in one place in the driver. Fix potential memory leak with ALSA rawmidi info. Do away with unnecessary auto_ptrs.

tags/1.9.8
Devin Anderson 14 years ago
parent
commit
4ae9118fc2
1 changed files with 9 additions and 9 deletions
  1. +9
    -9
      linux/alsarawmidi/JackALSARawMidiDriver.cpp

+ 9
- 9
linux/alsarawmidi/JackALSARawMidiDriver.cpp View File

@@ -180,7 +180,7 @@ JackALSARawMidiDriver::Execute()
break; break;
} }


if (timeout_frame_ptr) {
if (timeout_ptr) {
jack_info("JackALSARawMidiDriver::Execute - '%d', '%d'", jack_info("JackALSARawMidiDriver::Execute - '%d', '%d'",
timeout_frame, GetCurrentFrame()); timeout_frame, GetCurrentFrame());
} }
@@ -233,13 +233,13 @@ JackALSARawMidiDriver::
FreeDeviceInfo(std::vector<snd_rawmidi_info_t *> *in_info_list, FreeDeviceInfo(std::vector<snd_rawmidi_info_t *> *in_info_list,
std::vector<snd_rawmidi_info_t *> *out_info_list) std::vector<snd_rawmidi_info_t *> *out_info_list)
{ {
size_t length = in_info_list.size();
size_t length = in_info_list->size();
for (size_t i = 0; i < length; i++) { for (size_t i = 0; i < length; i++) {
snd_rawmidi_info_free(in_info_list.at(i));
snd_rawmidi_info_free(in_info_list->at(i));
} }
length = out_info_list.size();
length = out_info_list->size();
for (size_t i = 0; i < length; i++) { for (size_t i = 0; i < length; i++) {
snd_rawmidi_info_free(out_info_list.at(i));
snd_rawmidi_info_free(out_info_list->at(i));
} }
} }


@@ -359,6 +359,8 @@ JackALSARawMidiDriver::Open(bool capturing, bool playing, int in_channels,
FreeDeviceInfo(&in_info_list, &out_info_list); FreeDeviceInfo(&in_info_list, &out_info_list);
return -1; return -1;
} }
size_t num_inputs = 0;
size_t num_outputs = 0;
if (potential_inputs) { if (potential_inputs) {
try { try {
input_ports = new JackALSARawMidiInputPort *[potential_inputs]; input_ports = new JackALSARawMidiInputPort *[potential_inputs];
@@ -379,8 +381,6 @@ JackALSARawMidiDriver::Open(bool capturing, bool playing, int in_channels,
goto delete_input_ports; goto delete_input_ports;
} }
} }
size_t num_inputs = 0;
size_t num_outputs = 0;
for (size_t i = 0; i < potential_inputs; i++) { for (size_t i = 0; i < potential_inputs; i++) {
snd_rawmidi_info_t *info = in_info_list.at(i); snd_rawmidi_info_t *info = in_info_list.at(i);
try { try {
@@ -415,7 +415,7 @@ JackALSARawMidiDriver::Open(bool capturing, bool playing, int in_channels,
return 0; return 0;
} }
if (output_ports) { if (output_ports) {
for (int i = 0; i < num_outputs; i++) {
for (size_t i = 0; i < num_outputs; i++) {
delete output_ports[i]; delete output_ports[i];
} }
delete[] output_ports; delete[] output_ports;
@@ -423,7 +423,7 @@ JackALSARawMidiDriver::Open(bool capturing, bool playing, int in_channels,
} }
delete_input_ports: delete_input_ports:
if (input_ports) { if (input_ports) {
for (int i = 0; i < num_inputs; i++) {
for (size_t i = 0; i < num_inputs; i++) {
delete input_ports[i]; delete input_ports[i];
} }
delete[] input_ports; delete[] input_ports;


Loading…
Cancel
Save