Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Sep 20, 2015
  1. @TheMarex

    Merge branch 'develop'

    TheMarex committed
Commits on Sep 18, 2015
  1. @freenerd

    Test that alternative route exists

    freenerd committed
    Complement to a6b44a1
Commits on Sep 17, 2015
  1. @danpat
Commits on Sep 16, 2015
  1. @daniel-j-h

    Script for fully automated test bisecting.

    daniel-j-h committed
    Automate cucumber tests bisecting by providing a `git bisect` script.
    Because it is stored in source control, but bisecting changes the HEAD,
    it is advised to first copy over the script to a place outside source
    control, e.g. `/tmp`.
        git bisect start HEAD HEAD~10
        bit bisect run /tmp/
    This automatically configures and builds OSRM, spawns the cucumber tests
    and communicates with `git bisect` based on its return code.
    - man git-bisect
  2. @TheMarex

    Merge branch 'develop'

    TheMarex committed
  3. @daniel-j-h

    Extend compressed output lifetime till the async write function finis…

    daniel-j-h committed
    This extends the compressed output vector's lifetime, as we issue an
    asynchronous write operation that only receives a non-owning buffer to
    the compressed data.
    When the compressed output vector then goes out of scope, its destructor
    is called and the data gets (potentially) destroyed. If the asynchronous
    write happens afterwards, it's accessing data that is no longer there.
    This is the reason for race conditions --- well, for undefined behavior
    in general, but it manifests in the routed _sometimes_ not responding at
    The fix works like this: keep the compressed output associated with a
    connection. Connections inherit from `std::enable_shared_from_this` and
    issues a `shared_from_this()` call, passing a `std::shared_ptr` to the
    asynchronous write function, thus extending their lifetime.
    Connecitons thus manage their lifetime by themselves, extending it when
    needed (and of course via the `std::shared_pointers` pointing to it).
    Buffer's non owning property, from the `async_write` documentation:
    > One or more buffers containing the data to be written. Although
    > the buffers object may be copied as necessary, ownership of the
    > underlying memory blocks is retained by the caller, which must
    > guarantee that they remain valid until the handler is called.
Commits on Sep 15, 2015
  1. @BergWerkGIS
  2. @daniel-j-h

    Caches iterators instead of invoking function calls on every iteration.

    daniel-j-h committed
    This caches iterators, i.e. especially the end iterator when possible.
    The problem:
        for (auto it = begin(seq); it != end(seq); ++it)
    this has to call `end(seq)` on every iteration, since the compiler is
    not able to reason about the call's site effects (to bad, huh).
    Instead do it like this:
        for (auto it = begin(seq), end = end(seq); it != end; ++it)
    caching the end iterator.
    Of course, still better would be:
        for (auto&& each : seq)
    if all you want is value semantics.
    Why `auto&&` you may ask? Because it binds to everything and never copies!
    Skim the referenced proposal (that was rejected, but nevertheless) for a
    detailed explanation on range-based for loops and why `auto&&` is great.
Commits on Sep 14, 2015
  1. @TheMarex
Commits on Sep 10, 2015
  1. @TheMarex
  2. @agruss @TheMarex
  3. @lbud
  4. @TheMarex
  5. @TheMarex
  6. @daniel-j-h
Commits on Sep 9, 2015
  1. @daniel-j-h

    Ownership: vector already owns, no need for wrapping in unique_ptr.

    daniel-j-h committed
    Removes the pointless `std::unique_ptr<std::vector<T>>` usage,
    as a `std::vector` already owns its resources and manages them.
    Results in one indirection less (hint: good).
Commits on Sep 8, 2015
  1. @daniel-j-h

    Don't pass by const-value for a read-only view.

    daniel-j-h committed
    I can't see a reason we pass by const-value here.
    Note: changes API because of the `route_parameters` header.
Commits on Sep 7, 2015
  1. @BergWerkGIS
  2. @BergWerkGIS
  3. @BergWerkGIS

    AppVeyor: include osrm.lib in artifact. don't stick to AppVeyor direc…

    BergWerkGIS committed
    …tory structure in build scripts.
  4. @daniel-j-h

    Make an exception for block barriers in bicycle and foot profile.

    daniel-j-h committed
    This adds `barrier=block` exceptions to the respective white lists.
    In addition this adds tests to check for the exception in bicycle and
    foot profiles and makes sure cars are still not able to cross them.
    Checked with:
        cucumber --tags @barrier -p verify
    - #1643
Commits on Sep 5, 2015
  1. @daniel-j-h
Commits on Sep 4, 2015
  1. @danpat @daniel-j-h

    Only replace fingerprint file when MD5 changes. Avoids rebuilding sev…

    danpat committed with daniel-j-h
    …eral things if nothing has actually changes, as cmake is only looking at timestamps.
  2. @lbud

    Implement raster source feature to read data from third-party sources…

    lbud committed
    …, to be used in lua profiles.
    * Adds a data structure, RasterSource, to store parsed + queryable data
    * Adds bindings for that and relevant data structures as well as source_function and segment_function
    * Adds relevant unit tests and cucumber tests
    * Bring-your-own-data feature
Commits on Sep 3, 2015
  1. @daniel-j-h

    Move destination to access tag white list instead of making exception…

    daniel-j-h committed
    … in car profile.
    Tested with:
        cucumber --tags @access -p verify
    - #1617
    - #1639
  2. @daniel-j-h
  3. @TheMarex

    Fix endless loop

    TheMarex committed
  4. @TheMarex
  5. @TheMarex
  6. @TheMarex

    Also prune on MAX_DOUBLE

    TheMarex committed
  7. @TheMarex
  8. @TheMarex
  9. @TheMarex
  10. @TheMarex

    Fix typo

    TheMarex committed
  11. @TheMarex
Something went wrong with that request. Please try again.