+2013-10-20 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/fs/zfs.c: Remove variable length arrays.
+ Reduces zfs.mod by 160 bytes (208 compressed).
+
2013-10-20 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/zfs/zfs.c (check_pool_label): Fix memory leak.
return powx[powx_inv[a] + powx_inv[b]];
}
-static inline grub_err_t
+#define MAX_NBUFS 4
+
+static grub_err_t
recovery (grub_uint8_t *bufs[4], grub_size_t s, const int nbufs,
const unsigned *powers,
const int *idx)
return GRUB_ERR_NONE;
}
/* Otherwise use Gauss. */
- default:
+ case 3:
{
- grub_uint8_t matrix1[nbufs][nbufs], matrix2[nbufs][nbufs];
+ grub_uint8_t matrix1[MAX_NBUFS][MAX_NBUFS], matrix2[MAX_NBUFS][MAX_NBUFS];
int i, j, k;
for (i = 0; i < nbufs; i++)
for (i = 0; i < (int) s; i++)
{
- grub_uint8_t b[nbufs];
+ grub_uint8_t b[MAX_NBUFS];
for (j = 0; j < nbufs; j++)
b[j] = bufs[j][i];
for (j = 0; j < nbufs; j++)
}
return GRUB_ERR_NONE;
}
+ default:
+ return grub_error (GRUB_ERR_BUG, "too big matrix");
}
}