title: app crashes while assigning QVariant to QVariant
body: <p>When I call a following function it crashes</p>
  
  <pre><code>void RequestBuilder::setData(QVariant &amp;data)
  {
      this-&gt;data=data;
  }
  </code></pre>
  
  <p><code>data</code> contains a <code>QVariantMap</code> (<code>data</code>also contains value as a QVariantMap) in it. And <code>this-&gt;data</code> is also <code>QVariant</code>.</p>
  
  <p>Here are some more details while calling the function.</p>
  
  <pre><code>QVariantMap in,out;
  in["name"]="nik";
  out["details"]=in;
  out["other"]="something";
  QVariant param=QVariant(out);
  setData(param);
  </code></pre>
  
  <p>The above function works fine if I pass map which contains primitive data types</p>
  
  <pre><code>QVariantMap abc;
  abc["name"]="nik";
  QVariant var=QVariant(abc);
  setData(var);
  </code></pre>
  
  <p>Is there a difference when <code>QVariantMap</code> contains Non-primitive values?</p>