hw/audio/fmopl: Move ENV_CURVE to .heap to save 32KiB of .bss
authorPhilippe Mathieu-Daudé <philmd@redhat.com>
Thu, 5 Mar 2020 12:45:18 +0000 (13:45 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 16 Mar 2020 22:02:24 +0000 (23:02 +0100)
This buffer is only used by the adlib audio device. Move it to
the .heap to release 32KiB of .bss (size reported on x86_64 host).

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/audio/fmopl.c

index 173a7521f2a72377d982eaec39ac1410930541dc..356d4dfbcaa6de72a4df327fbbd5267d88ad69aa 100644 (file)
@@ -186,7 +186,7 @@ static int32_t *VIB_TABLE;
 
 /* envelope output curve table */
 /* attack + decay + OFF */
-static int32_t ENV_CURVE[2*EG_ENT+1];
+static int32_t *ENV_CURVE;
 
 /* multiple table */
 #define ML 2
@@ -1090,6 +1090,7 @@ FM_OPL *OPLCreate(int clock, int rate)
        OPL->clock = clock;
        OPL->rate  = rate;
        OPL->max_ch = max_ch;
+    ENV_CURVE = g_new(int32_t, 2 * EG_ENT + 1);
        /* init grobal tables */
        OPL_initialize(OPL);
        /* reset chip */
@@ -1127,6 +1128,7 @@ void OPLDestroy(FM_OPL *OPL)
 #endif
        OPL_UnLockTable();
        free(OPL);
+    g_free(ENV_CURVE);
 }
 
 /* ----------  Option handlers ----------       */