* Add a new (marshaled) error to the response. * Keeps track of the id necessary for frontend JS, and updates * the numErrors response key. * @todo id should probably just be a unique id for the builderror? * builderror table currently has no integer that serves as a unique identifier. **/ function addErrorResponse($data) { global $build, $response; $data['id'] = $response['numErrors']; $response['numErrors']++; $response['errors'][] = $data; } if (isset($_GET['onlydeltan'])) { // Build error table $resolvedBuildErrors = $build->GetResolvedBuildErrors($type); if ($resolvedBuildErrors !== false) { while ($resolvedBuildError = pdo_fetch_array($resolvedBuildErrors)) { addErrorResponse(builderror::marshal($resolvedBuildError, $project_array, $revision)); } } // Build failure table $resolvedBuildFailures = $build->GetResolvedBuildFailures($type); while ($resolvedBuildFailure = pdo_fetch_array($resolvedBuildFailures)) { $marshaledResolvedBuildFailure = buildfailure::marshal($resolvedBuildFailure, $project_array, $revision); if ($project_array['displaylabels']) { get_labels_JSON_from_query_results("SELECT text FROM label, label2buildfailure\n WHERE label.id=label2buildfailure.labelid AND\n label2buildfailure.buildfailureid='" . $resolvedBuildFailure['id'] . "'\n ORDER BY text ASC", $marshaledResolvedBuildFailure); } $marshaledResolvedBuildFailure = array_merge($marshaledResolvedBuildFailure, array('stderr' => $resolvedBuildFailure['stderror'], 'stderrorrows' => min(10, substr_count($resolvedBuildFailure['stderror'], "\n") + 1), 'stdoutput' => $resolvedBuildFailure['stdoutput'], 'stdoutputrows' => min(10, substr_count($resolvedBuildFailure['stdoutputrows'], "\n") + 1))); addErrorResponse($marshaledResolvedBuildFailure); }