Browse Source

zalsa: return error directly if failed to init, fix mem leak

Signed-off-by: falkTX <falktx@falktx.com>
tags/v1.9.18^2
falkTX 4 years ago
parent
commit
24013c369b
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 12 additions and 6 deletions
  1. +7
    -4
      tools/zalsa/zita-a2j.cc
  2. +5
    -2
      tools/zalsa/zita-j2a.cc

+ 7
- 4
tools/zalsa/zita-a2j.cc View File

@@ -238,13 +238,15 @@ public:
double t_del; double t_del;


if (parse_options (load_init)) { if (parse_options (load_init)) {
jack_error (APPNAME ": parse options failed");
return 1;
jack_error (APPNAME ": parse options failed");
delete this;
return 1;
} }


if (device == 0) if (device == 0)
{ {
help (); help ();
delete this;
return 1; return 1;
} }
if (rqual < 16) rqual = 16; if (rqual < 16) rqual = 16;
@@ -252,6 +254,7 @@ public:
if ((fsamp < 8000) || (bsize < 16) || (nfrag < 2) || (nchan < 1)) if ((fsamp < 8000) || (bsize < 16) || (nfrag < 2) || (nchan < 1))
{ {
jack_error (APPNAME ": Illegal parameter value(s)."); jack_error (APPNAME ": Illegal parameter value(s).");
delete this;
return 1; return 1;
} }


@@ -262,6 +265,7 @@ public:
if (A->state ()) if (A->state ())
{ {
jack_error (APPNAME ": Can't open ALSA capture device '%s'.", device); jack_error (APPNAME ": Can't open ALSA capture device '%s'.", device);
delete this;
return 1; return 1;
} }
if (v_opt) A->printinfo (); if (v_opt) A->printinfo ();
@@ -314,8 +318,7 @@ int
jack_initialize (jack_client_t* client, const char* load_init) jack_initialize (jack_client_t* client, const char* load_init)
{ {
zita_a2j *c = new zita_a2j(); zita_a2j *c = new zita_a2j();
c->jack_initialize(client, load_init);
return 0;
return c->jack_initialize(client, load_init);
} }


void jack_finish (void* arg) void jack_finish (void* arg)


+ 5
- 2
tools/zalsa/zita-j2a.cc View File

@@ -237,12 +237,14 @@ public:
double t_del; double t_del;


if (parse_options (load_init)) { if (parse_options (load_init)) {
delete this;
return 1; return 1;
} }


if (device == 0) if (device == 0)
{ {
help (); help ();
delete this;
return 1; return 1;
} }
if (rqual < 16) rqual = 16; if (rqual < 16) rqual = 16;
@@ -250,6 +252,7 @@ public:
if ((fsamp < 8000) || (bsize < 16) || (nfrag < 2) || (nchan < 1)) if ((fsamp < 8000) || (bsize < 16) || (nfrag < 2) || (nchan < 1))
{ {
jack_error (APPNAME ": Illegal parameter value(s)."); jack_error (APPNAME ": Illegal parameter value(s).");
delete this;
return 1; return 1;
} }


@@ -260,6 +263,7 @@ public:
if (A->state ()) if (A->state ())
{ {
jack_error (APPNAME ": Can't open ALSA playback device '%s'.", device); jack_error (APPNAME ": Can't open ALSA playback device '%s'.", device);
delete this;
return 1; return 1;
} }
if (v_opt) A->printinfo (); if (v_opt) A->printinfo ();
@@ -312,8 +316,7 @@ int
jack_initialize (jack_client_t* client, const char* load_init) jack_initialize (jack_client_t* client, const char* load_init)
{ {
zita_j2a *c = new zita_j2a(); zita_j2a *c = new zita_j2a();
c->jack_initialize(client, load_init);
return 0;
return c->jack_initialize(client, load_init);
} }


void jack_finish (void* arg) void jack_finish (void* arg)


Loading…
Cancel
Save