<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/105056/">http://git.reviewboard.kde.org/r/105056/</a>
     </td>
    </tr>
   </table>
   <br />








<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On July 4th, 2012, 2:24 p.m., <b>Maks Orlovich</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/105056/diff/4/?file=69807#file69807line198" style="color: black; font-weight: bold; text-decoration: underline;">kjs/jsonlexer.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 4)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">JSValue* JSONParser::parse(ExecState* exec, ParserState state)</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">198</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span class="c1">// this is needed for empty objects "[{}]"</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I don't think this is needed anymore.</pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">If we got called from JSONArray-TokLBrace we did not create an object.

In more detail for the following JSON String "[{}]"
If are in parse with type=JSONArray and state=TokLBrace,
means we just found the { in the Array, and call parse(exec, JSONObject),
now in this call type=JSONObject, state=TokRBrace ("}") and, our new, object=0 (!)
We will finish the object and return it, but as object is null, we return 0.
which would be wrong, as empty objects are allowed.
In this case we just report invalid data.
But for JSON String like "[{"a":1}]", we end up using object(0)->putDirect
and crash.

In short, remove this line and we will crash.</pre>
<br />




<p>- Bernd</p>


<br />
<p>On June 18th, 2012, 10:25 p.m., Bernd Buschinski wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for kdelibs.</div>
<div>By Bernd Buschinski.</div>


<p style="color: grey;"><i>Updated June 18, 2012, 10:25 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">kjs: Implement JSON.parse</pre>
  </td>
 </tr>
</table>





<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>kjs/CMakeLists.txt <span style="color: grey">(1188064)</span></li>

 <li>kjs/interpreter.cpp <span style="color: grey">(cf1acf1)</span></li>

 <li>kjs/json_object.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kjs/json_object.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kjs/jsonlexer.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kjs/jsonlexer.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kjs/libkjs.map <span style="color: grey">(e9f679f)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/105056/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>