Small tweaks to the block jacobi preconditioner.
diff --git a/internal/ceres/block_jacobi_preconditioner.cc b/internal/ceres/block_jacobi_preconditioner.cc
index f043200..1a5001f 100644
--- a/internal/ceres/block_jacobi_preconditioner.cc
+++ b/internal/ceres/block_jacobi_preconditioner.cc
@@ -105,13 +105,15 @@
   for (int c = 0; c < bs->cols.size(); ++c) {
     const int size = block_structure_.cols[c].size;
     const int position = block_structure_.cols[c].position;
-    MatrixRef DD(blocks_[c], size, size);
+    MatrixRef block(blocks_[c], size, size);
 
-    DD.diagonal() += ConstVectorRef(D + position, size).array().square().matrix();
+    if (D != NULL) {
+      block.diagonal() += ConstVectorRef(D + position, size).array().square().matrix();
+    }
 
-    DD = DD.selfadjointView<Eigen::Upper>()
-           .ldlt()
-           .solve(Matrix::Identity(size, size));
+    block = block.selfadjointView<Eigen::Upper>()
+                 .ldlt()
+                 .solve(Matrix::Identity(size, size));
   }
 }