Commit 23c9d32d authored by Jonathan Wilkes's avatar Jonathan Wilkes
Browse files

fix crasher with scalar dialog handling of vector data

parent 5cb2f8b8
......@@ -62,7 +62,7 @@ function apply() {
data_string += ";\n";
// now tack on any vector data we may have
if (vector_textarea) {
data_string += vector_textarea.textContent;
data_string += vector_textarea.value;
// strip off the trailing semicolon. Otherwise Pd will crash...
data_string = data_string.slice(0, -1);
}
......
......@@ -341,8 +341,17 @@ void canvas_dataproperties(t_canvas *x, t_scalar *sc, t_binbuf *b)
&& (template = template_findbyname(((t_scalar *)newone)->sc_template)))
{
/* copy new one to old one and delete new one */
memcpy(&((t_scalar *)oldone)->sc_vec, &((t_scalar *)newone)->sc_vec,
template->t_n * sizeof(t_word));
int i;
/* swap out the sc_vec field. That way we'll keep the one from
the new scalar, and the old one will get freed by word_free (which
gets called from pd_free below)
*/
for (i = 0; i < template->t_n; i++)
{
t_word w = ((t_scalar *)newone)->sc_vec[i];
((t_scalar *)newone)->sc_vec[i] = ((t_scalar *)oldone)->sc_vec[i];
((t_scalar *)oldone)->sc_vec[i] = w;
}
pd_free(&newone->g_pd);
if (glist_isvisible(x))
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment