OpenImageIO/oiio — pull request #829 by lgritz (2014-03-25 16:21:56+00:00)
Title: Fix Parameter neglect of its m_interp field when copying.

The long-unused m_interp field of Parameter was not properly copied
during copy-construction or assignment (nor was there any ctr variety
that directly set it -- you'd need to construct with the default
INTERP_CONSTANT, then set it manually).

This was problematic if you had a std::vector (such as a
ParamValueList!) because when it resizes as the vector grows, it will
copy elements to reallocated memory and in the process botch the
m_interp field if anybody has set it to something other than the
default. Which OSL does! Oops.

So we're careful about this in the copy ctr and assignemnt now, and made
varieties of the init() and ctr's that take an interp. We only *added*
inline and non-virtual methods, so it should be both source and link
compatible with apps that used Parameter before. That being the case, I
intend to backport to 1.3, in case anybody is using OSL with the release
branch of OIIO. (OSL is the only situation in which the interp field is
used, as far as I'm aware.)