X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fgdbserver%2Fregcache.c;h=d1a534cc52a901653c92558bca51b8361cdde825;hb=a059f00c857d088a7fe55d2dbded9d3210af4989;hp=43e78a5cf7c964cbe489a77c4cea23f55c895bb0;hpb=cc397f3a236509257acfd5cd17c2f15f87a482d7;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/regcache.c b/gdb/gdbserver/regcache.c index 43e78a5cf7..d1a534cc52 100644 --- a/gdb/gdbserver/regcache.c +++ b/gdb/gdbserver/regcache.c @@ -53,8 +53,9 @@ get_thread_regcache (struct thread_info *thread, int fetch) current_thread = thread; /* Invalidate all registers, to prevent stale left-overs. */ - memset (regcache->register_status, REG_UNAVAILABLE, - VEC_length (tdesc_reg_p, regcache->tdesc->reg_defs)); + if (!VEC_empty (tdesc_reg_p, regcache->tdesc->reg_defs)) + memset (regcache->register_status, REG_UNAVAILABLE, + VEC_length (tdesc_reg_p, regcache->tdesc->reg_defs)); fetch_inferior_registers (regcache, -1); current_thread = saved_thread; regcache->registers_valid = 1; @@ -146,8 +147,9 @@ init_register_cache (struct regcache *regcache, regcache->registers_owned = 1; regcache->register_status = (unsigned char *) xmalloc (VEC_length (tdesc_reg_p, tdesc->reg_defs)); - memset ((void *) regcache->register_status, REG_UNAVAILABLE, - VEC_length (tdesc_reg_p, tdesc->reg_defs)); + if (!VEC_empty (tdesc_reg_p, tdesc->reg_defs)) + memset ((void *) regcache->register_status, REG_UNAVAILABLE, + VEC_length (tdesc_reg_p, tdesc->reg_defs)); #else gdb_assert_not_reached ("can't allocate memory from the heap"); #endif