@@ -305,6 +305,62 @@ OSLQuery::Parameter::Parameter (Parameter&& src)
305305
306306
307307
308+ const OSLQuery::Parameter&
309+ OSLQuery::Parameter::operator = (const Parameter& src)
310+ {
311+ name = src.name ;
312+ type = src.type ;
313+ isoutput = src.isoutput ;
314+ validdefault = src.validdefault ;
315+ varlenarray = src.varlenarray ;
316+ isstruct = src.isstruct ;
317+ isclosure = src.isclosure ;
318+ idefault = src.idefault ;
319+ fdefault = src.fdefault ;
320+ sdefault = src.sdefault ;
321+ spacename = src.spacename ;
322+ fields = src.fields ;
323+ structname = src.structname ;
324+ metadata = src.metadata ;
325+ if (type.basetype == TypeDesc::INT)
326+ data = idefault.data ();
327+ else if (type.basetype == TypeDesc::FLOAT)
328+ data = fdefault.data ();
329+ else if (type.basetype == TypeDesc::STRING)
330+ data = sdefault.data ();
331+ return *this ;
332+ }
333+
334+
335+
336+ const OSLQuery::Parameter&
337+ OSLQuery::Parameter::operator = (Parameter&& src)
338+ {
339+ name = src.name ;
340+ type = src.type ;
341+ isoutput = src.isoutput ;
342+ validdefault = src.validdefault ;
343+ varlenarray = src.varlenarray ;
344+ isstruct = src.isstruct ;
345+ isclosure = src.isclosure ;
346+ idefault = std::move (src.idefault );
347+ fdefault = std::move (src.fdefault );
348+ sdefault = std::move (src.sdefault );
349+ spacename = src.spacename ;
350+ fields = src.fields ;
351+ structname = src.structname ;
352+ metadata = std::move (src.metadata );
353+ if (type.basetype == TypeDesc::INT)
354+ data = idefault.data ();
355+ else if (type.basetype == TypeDesc::FLOAT)
356+ data = fdefault.data ();
357+ else if (type.basetype == TypeDesc::STRING)
358+ data = sdefault.data ();
359+ return *this ;
360+ }
361+
362+
363+
308364OSLQuery::OSLQuery ()
309365{
310366}
0 commit comments