Skip to content
Snippets Groups Projects
Commit 23c9d32d authored by Jonathan Wilkes's avatar Jonathan Wilkes
Browse files

fix crasher with scalar dialog handling of vector data

parent 5cb2f8b8
No related branches found
No related tags found
No related merge requests found
......@@ -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))
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment