cortex_a: add cortex_a_[read|write]_buffer
[fw/openocd] / src / jtag / tcl.c
index 7f08b00fb12eeead51b403eb80341f19091c4854..c916fb1ca186126b99f3c2566eace86f59664081 100644 (file)
@@ -434,20 +434,15 @@ static int jim_newtap_expected_id(Jim_Nvp *n, Jim_GetOptInfo *goi,
                return e;
        }
 
-       unsigned expected_len = sizeof(uint32_t) * pTap->expected_ids_cnt;
-       uint32_t *new_expected_ids = malloc(expected_len + sizeof(uint32_t));
-       if (new_expected_ids == NULL) {
+       uint32_t *p = realloc(pTap->expected_ids,
+                             (pTap->expected_ids_cnt + 1) * sizeof(uint32_t));
+       if (!p) {
                Jim_SetResultFormatted(goi->interp, "no memory");
                return JIM_ERR;
        }
 
-       memcpy(new_expected_ids, pTap->expected_ids, expected_len);
-
-       new_expected_ids[pTap->expected_ids_cnt] = w;
-
-       free(pTap->expected_ids);
-       pTap->expected_ids = new_expected_ids;
-       pTap->expected_ids_cnt++;
+       pTap->expected_ids = p;
+       pTap->expected_ids[pTap->expected_ids_cnt++] = w;
 
        return JIM_OK;
 }