summaryrefslogtreecommitdiff
path: root/src/target/arm11_dbgtap.c
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2009-11-22 19:57:57 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2009-11-22 19:57:57 +0100
commit5985dee35da3ea24f1c9cb30b6cd50aa1bc63660 (patch)
tree81d36a0aef73e646f2ed0bbc27a7084356f900e8 /src/target/arm11_dbgtap.c
parentbcebce3ce25465589d379c809a12e2beda8430b9 (diff)
downloadopenocd+libswd-5985dee35da3ea24f1c9cb30b6cd50aa1bc63660.tar.gz
openocd+libswd-5985dee35da3ea24f1c9cb30b6cd50aa1bc63660.tar.bz2
openocd+libswd-5985dee35da3ea24f1c9cb30b6cd50aa1bc63660.tar.xz
openocd+libswd-5985dee35da3ea24f1c9cb30b6cd50aa1bc63660.zip
arm11: do not use dynamic arrays
Allocate working memory dynamically, caught by checkstack.pl Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/target/arm11_dbgtap.c')
-rw-r--r--src/target/arm11_dbgtap.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/target/arm11_dbgtap.c b/src/target/arm11_dbgtap.c
index 0f7e4953..26de4ceb 100644
--- a/src/target/arm11_dbgtap.c
+++ b/src/target/arm11_dbgtap.c
@@ -880,10 +880,11 @@ int arm11_sc7_run(struct arm11_common * arm11, struct arm11_sc7_action * actions
*/
void arm11_sc7_clear_vbw(struct arm11_common * arm11)
{
- struct arm11_sc7_action clear_bw[arm11->brp + arm11->wrp + 1];
+ size_t clear_bw_size = arm11->brp + arm11->wrp + 1;
+ struct arm11_sc7_action *clear_bw = malloc(sizeof(struct arm11_sc7_action) * clear_bw_size);
struct arm11_sc7_action * pos = clear_bw;
- for (size_t i = 0; i < ARRAY_SIZE(clear_bw); i++)
+ for (size_t i = 0; i < clear_bw_size; i++)
{
clear_bw[i].write = true;
clear_bw[i].value = 0;
@@ -899,7 +900,9 @@ void arm11_sc7_clear_vbw(struct arm11_common * arm11)
(pos++)->address = ARM11_SC7_VCR;
- arm11_sc7_run(arm11, clear_bw, ARRAY_SIZE(clear_bw));
+ arm11_sc7_run(arm11, clear_bw, clear_bw_size);
+
+ free (clear_bw);
}
/** Write VCR register