)]}'
{
  "commit": "54ba6c27b504f43b59b0d91da0165995c66d9a3d",
  "tree": "ee038d7fec6688a9310ff10c70a61755421e8254",
  "parents": [
    "fac46d50eb50d7c0830f673cadc36e63407e40bf"
  ],
  "author": {
    "name": "Sergey Sharybin",
    "email": "sergey.vfx@gmail.com",
    "time": "Sat Dec 23 18:18:24 2017 +0100"
  },
  "committer": {
    "name": "Sergey Sharybin",
    "email": "sergey.vfx@gmail.com",
    "time": "Tue Apr 23 12:16:28 2019 +0200"
  },
  "message": "Fix missing declaration warnings in Ceres code\n\nThis commit includes the following:\n\n- Changes to CMake to make it safer to see which compiler flags are supported,\n  so this way we do not need to worry about version checks in CMake.\n\n- Unix platforms (which includes both Linux and Apple as far as i can tell)\n  will now enable -Wmissing-declarations warning for the whole Ceres.\n\n- Changes in all sources to solve missing declaration warning. In most cases\n  it was either matter of using static qualifier or moving functions to an\n  anonymous namespace.\n\n  In one case the function got removed, since it seems to be unused.\n\n  Additionally, in slam examples there was a non-inlined function implementation\n  in a header, which is a direct way to cause linking errors if other .cc file\n  will include that helper header.\n\n- All third party sources (which is currently only gmock) has this extra\n  paranoid warning disabled.\n\nThis warning is important in the following cases:\n\n- Detect helper functions which are not needed anymore.\n- Avoid unnoticed pollution of namespace.\n- Avoid bad level calls.\n- Avoid missing updates in header files after changes in implementation file.\n- Helps integrating Ceres into software where paranoid warnings are important.\n\nChange-Id: I9b1044aced3910d8c6b2356cfe2bf57f3c8c58db\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4ce361dd42dea9ed67317e462ca521c510fc3721",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "dc01b7da7f055bb7695ec756144181fa25d299d3",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1af9ee8883b90c326d4c6b5fdd4474d4139a2ee0",
      "new_mode": 33188,
      "new_path": "cmake/AddCompileFlagsIfSupported.cmake"
    },
    {
      "type": "modify",
      "old_id": "5619c522c737da914e722ac1318b3fcb544734ae",
      "old_mode": 33188,
      "old_path": "examples/bundle_adjuster.cc",
      "new_id": "d075d0734e4bf7d6c69fae8d1bb9a1dbf3321357",
      "new_mode": 33188,
      "new_path": "examples/bundle_adjuster.cc"
    },
    {
      "type": "modify",
      "old_id": "0027aa8cfc7d8437826142e760a061cf805325a3",
      "old_mode": 33188,
      "old_path": "examples/curve_fitting.c",
      "new_id": "fef558158b5313c0f5eca5063df2f48790befb97",
      "new_mode": 33188,
      "new_path": "examples/curve_fitting.c"
    },
    {
      "type": "modify",
      "old_id": "a8bdd7ceceda353e504c693a48d6b0a2238cd056",
      "old_mode": 33188,
      "old_path": "examples/denoising.cc",
      "new_id": "e64d70fd93fd0e16f4e8147320bba0ee262dcd44",
      "new_mode": 33188,
      "new_path": "examples/denoising.cc"
    },
    {
      "type": "modify",
      "old_id": "f519f0ca2f7af638216ed5e00a8c1a62add0d96f",
      "old_mode": 33188,
      "old_path": "examples/ellipse_approximation.cc",
      "new_id": "59894a2bdaf01bccd62a34bd2ede776a351d00da",
      "new_mode": 33188,
      "new_path": "examples/ellipse_approximation.cc"
    },
    {
      "type": "modify",
      "old_id": "8ce72915e774e9517abaff2ec91a2eec66cf2c79",
      "old_mode": 33188,
      "old_path": "examples/nist.cc",
      "new_id": "017ae825af9810e92920ce42dad894575c808328",
      "new_mode": 33188,
      "new_path": "examples/nist.cc"
    },
    {
      "type": "modify",
      "old_id": "1f5058a4116b286b9331a731976f0b90270abf83",
      "old_mode": 33188,
      "old_path": "examples/robot_pose_mle.cc",
      "new_id": "87def116d67d32fd0d50c41ab7de18d757562557",
      "new_mode": 33188,
      "new_path": "examples/robot_pose_mle.cc"
    },
    {
      "type": "modify",
      "old_id": "b9374db21579eda08e4aea3b3a30045cf22c1e5e",
      "old_mode": 33188,
      "old_path": "examples/slam/pose_graph_2d/pose_graph_2d.cc",
      "new_id": "d53461bbe56e6299bbf0581ad51ee48ee0d80604",
      "new_mode": 33188,
      "new_path": "examples/slam/pose_graph_2d/pose_graph_2d.cc"
    },
    {
      "type": "modify",
      "old_id": "a54d9bf2f50782a27568d16d8a86f77f67c2b65d",
      "old_mode": 33188,
      "old_path": "examples/slam/pose_graph_2d/types.h",
      "new_id": "43e0ffee04638629644fff9d4e9ee5ce0b97cca4",
      "new_mode": 33188,
      "new_path": "examples/slam/pose_graph_2d/types.h"
    },
    {
      "type": "modify",
      "old_id": "dcc85af673ed4e22b54738564c39e84693e4c84f",
      "old_mode": 33188,
      "old_path": "examples/slam/pose_graph_3d/pose_graph_3d.cc",
      "new_id": "dc35e5de827bd5098e68f7d7f3261baa62559842",
      "new_mode": 33188,
      "new_path": "examples/slam/pose_graph_3d/pose_graph_3d.cc"
    },
    {
      "type": "modify",
      "old_id": "2f125010f4183a8e3d1af54a952a0262d5692445",
      "old_mode": 33188,
      "old_path": "examples/slam/pose_graph_3d/types.h",
      "new_id": "2142820f339ec83c8052bc7551e32a1494393161",
      "new_mode": 33188,
      "new_path": "examples/slam/pose_graph_3d/types.h"
    },
    {
      "type": "modify",
      "old_id": "4473ad50bd51d13ad7544711f8fca3fd38b64ed5",
      "old_mode": 33188,
      "old_path": "include/ceres/types.h",
      "new_id": "fec3cea7da175d448ca526bff3838ed1d74f1fc0",
      "new_mode": 33188,
      "new_path": "include/ceres/types.h"
    },
    {
      "type": "modify",
      "old_id": "281eeded0e3eef0885075c5999a29e111d1ece75",
      "old_mode": 33188,
      "old_path": "internal/ceres/CMakeLists.txt",
      "new_id": "3670aa4f3fac23632fc7c3a679513d041db85f1a",
      "new_mode": 33188,
      "new_path": "internal/ceres/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "f2396dc04f84c68ff4b42c5175a50037e3f58ad6",
      "old_mode": 33188,
      "old_path": "internal/ceres/autodiff_local_parameterization_test.cc",
      "new_id": "df7723d48c2d2f4bc6ff1005781ec59866ab66b7",
      "new_mode": 33188,
      "new_path": "internal/ceres/autodiff_local_parameterization_test.cc"
    },
    {
      "type": "modify",
      "old_id": "95b727adc3eeb4566c8b99d84ba4322a5957a5a4",
      "old_mode": 33188,
      "old_path": "internal/ceres/c_api_test.cc",
      "new_id": "fa11249bd211b345b16844e230401bb77e67d909",
      "new_mode": 33188,
      "new_path": "internal/ceres/c_api_test.cc"
    },
    {
      "type": "modify",
      "old_id": "2162b9f1937883dd97279ebf73a611acb8cd558f",
      "old_mode": 33188,
      "old_path": "internal/ceres/compressed_col_sparse_matrix_utils_test.cc",
      "new_id": "ba422a4137c612c90a262198fd4675dd783216f2",
      "new_mode": 33188,
      "new_path": "internal/ceres/compressed_col_sparse_matrix_utils_test.cc"
    },
    {
      "type": "modify",
      "old_id": "50a7ecd8edff56849d22cf5558cc5eaa6fcf9374",
      "old_mode": 33188,
      "old_path": "internal/ceres/compressed_row_sparse_matrix_test.cc",
      "new_id": "d6cda93d5691e1913bc41fecdaa2db5236ffbf98",
      "new_mode": 33188,
      "new_path": "internal/ceres/compressed_row_sparse_matrix_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3c9a6fecd5c414a4bf580dcb626c4dc3b239cce0",
      "old_mode": 33188,
      "old_path": "internal/ceres/cost_function_to_functor_test.cc",
      "new_id": "0a6d86cf15bf75c4b9ee0c5316b01849eaa016b3",
      "new_mode": 33188,
      "new_path": "internal/ceres/cost_function_to_functor_test.cc"
    },
    {
      "type": "modify",
      "old_id": "2f3b8630441f8f2b90adf0e87892bdf28509ad6f",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_linear_solver_test.cc",
      "new_id": "4de745f6b85b263b7e738867f79e325c31bce0ac",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_linear_solver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "4d52e81ad7b231355001aeef182f7776c850312d",
      "old_mode": 33188,
      "old_path": "internal/ceres/dense_sparse_matrix_test.cc",
      "new_id": "b8ac2bab6d8964194e5691d852105deda684931f",
      "new_mode": 33188,
      "new_path": "internal/ceres/dense_sparse_matrix_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a28d5a839885c5b60bd4e0ce4851e0fb71fd8513",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluation_callback_test.cc",
      "new_id": "9ca500f959e7ff08334532e6333b392806a7f83d",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluation_callback_test.cc"
    },
    {
      "type": "modify",
      "old_id": "4473fd86bfc93d0f8eadbaec97465e96e7701885",
      "old_mode": 33188,
      "old_path": "internal/ceres/evaluator_test.cc",
      "new_id": "ef76be2a8d0c36887f5de72cd3357fdc7e34495e",
      "new_mode": 33188,
      "new_path": "internal/ceres/evaluator_test.cc"
    },
    {
      "type": "modify",
      "old_id": "05648fd9ec1a42e6a1f7424f414b5f4bdeeafec9",
      "old_mode": 33188,
      "old_path": "internal/ceres/gradient_checker_test.cc",
      "new_id": "a9d439fbe770a6c80bfbff4724875889ab697f0d",
      "new_mode": 33188,
      "new_path": "internal/ceres/gradient_checker_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f08bcd072f0eacf9fc76f7c0ed11b1e373f0a8a4",
      "old_mode": 33188,
      "old_path": "internal/ceres/gradient_checking_cost_function_test.cc",
      "new_id": "37471427ed1f639fe07eb2f2aa3ed85103e1ef2c",
      "new_mode": 33188,
      "new_path": "internal/ceres/gradient_checking_cost_function_test.cc"
    },
    {
      "type": "modify",
      "old_id": "fca03609503b06d986bf67b5faea2e16837e5dad",
      "old_mode": 33188,
      "old_path": "internal/ceres/householder_vector_test.cc",
      "new_id": "69a6d3c3eccc71bb6eeea35ca58e9265c5aa9398",
      "new_mode": 33188,
      "new_path": "internal/ceres/householder_vector_test.cc"
    },
    {
      "type": "modify",
      "old_id": "10fd8b8acf870cc687170de0153703d86108c590",
      "old_mode": 33188,
      "old_path": "internal/ceres/jet_test.cc",
      "new_id": "3f2b7d3abeb191b4947b5335f7ec76eb438c5abe",
      "new_mode": 33188,
      "new_path": "internal/ceres/jet_test.cc"
    },
    {
      "type": "modify",
      "old_id": "18b7e8c0f8ccfa5684da4a65a3556460297ffb04",
      "old_mode": 33188,
      "old_path": "internal/ceres/local_parameterization_test.cc",
      "new_id": "a2eff2f06333d7e379a8753c42fdeea7242eed7d",
      "new_mode": 33188,
      "new_path": "internal/ceres/local_parameterization_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1a51cfd15934606cd2071bd05a13deadcf325148",
      "old_mode": 33188,
      "old_path": "internal/ceres/normal_prior_test.cc",
      "new_id": "9abbf7f691a3beb5486a78c627aded6b8cb22030",
      "new_mode": 33188,
      "new_path": "internal/ceres/normal_prior_test.cc"
    },
    {
      "type": "modify",
      "old_id": "529fbe98500751e37bcd1add623a6cddad502216",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_test.cc",
      "new_id": "736e2951f0a8aa69fad1022101413be3c478c4b9",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_test.cc"
    },
    {
      "type": "modify",
      "old_id": "5a3fbfdbea86c3e1ac73978513e480b84323c261",
      "old_mode": 33188,
      "old_path": "internal/ceres/reorder_program.cc",
      "new_id": "3ad2a5f60962300fa4d689375367183db5b1b603",
      "new_mode": 33188,
      "new_path": "internal/ceres/reorder_program.cc"
    },
    {
      "type": "modify",
      "old_id": "3beaa1009ba63fdb5ff3ae95c57306883482ec72",
      "old_mode": 33188,
      "old_path": "internal/ceres/residual_block_utils_test.cc",
      "new_id": "deaa13aed5c598aacf4926a3a49588cd97e06a33",
      "new_mode": 33188,
      "new_path": "internal/ceres/residual_block_utils_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d980ba2b771b925f38fd9f34b2a8e967944d85a7",
      "old_mode": 33188,
      "old_path": "internal/ceres/rotation_test.cc",
      "new_id": "197495fe9ea3877ddbfa31a74626a90fc88d0522",
      "new_mode": 33188,
      "new_path": "internal/ceres/rotation_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3275cc0d9aa55562aaef029021910065180f2405",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_cholesky.cc",
      "new_id": "0639ea90664313f866b0efe5662bba4baae83d5d",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_cholesky.cc"
    },
    {
      "type": "modify",
      "old_id": "75b5e207e67cdc5bdd8240a6d103d7eac88c1418",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_cholesky_test.cc",
      "new_id": "2ef24e321caa4001a97326cb968dcb56e4fcce4d",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_cholesky_test.cc"
    },
    {
      "type": "modify",
      "old_id": "31ba70a91be4f6f81653c4b15db025109d9a7301",
      "old_mode": 33188,
      "old_path": "internal/ceres/subset_preconditioner_test.cc",
      "new_id": "5466f1bcf53f4f4d7ac3ce4889cd8848dd5c847f",
      "new_mode": 33188,
      "new_path": "internal/ceres/subset_preconditioner_test.cc"
    }
  ]
}
