1. 27 Sep, 2014 33 commits
  2. 26 Sep, 2014 7 commits
    • jamesr's avatar
      GN: Generate error if multiple rules generate same file · 598f6a85
      jamesr authored
      This will pretty much always result in a bad build but is only a warning
      in ninja.
      
      Review URL: https://codereview.chromium.org/455193003
      
      Cr-Commit-Position: refs/heads/master@{#297077}
      598f6a85
    • rpaquay's avatar
      This looks like a clear case of "use-after-delete": Given DNS resolution · d30fe32c
      rpaquay authored
      can take some time to complete, the re-use of a raw pointer stored as
      member variable (Socket*) is likely to be the root cause of this crash.
      
      This can happen is a socket is destroyed in between a call to "connect"
      (or "send") and the DNS resolution callback is invoked.
      
      Both the SocketConnectFunction and SocketSendFunction used to keep
      a raw pointer to the Socket instance. A call to "destroy" at the
      "right" time would free the socket instance, leaving both function
      to access a released object.
      
      The fix in this CL is to re-aquire the Socket instance using a
      socket_id instead of re-using the Socket* instance. If the socket
      has been destroyed, the socket_id is invalid, and the function fails
      gracefully.
      
      BUG=416741
      
      Review URL: https://codereview.chromium.org/608083002
      
      Cr-Commit-Position: refs/heads/master@{#297076}
      d30fe32c
    • ananta's avatar
      Fix stupid bug causing relaunch into Chrome OS mode to not work on Windows 7. · 0d523306
      ananta authored
      BUG=413101
      
      Review URL: https://codereview.chromium.org/601663003
      
      Cr-Commit-Position: refs/heads/master@{#297075}
      0d523306
    • hans's avatar
      Revert of Suppress Uninitialized access in ExtensionManagement::Refresh... · 830628b8
      hans authored
      Revert of Suppress Uninitialized access in ExtensionManagement::Refresh (patchset #2 id:20001 of https://codereview.chromium.org/608063002/)
      
      Reason for revert:
      The Clang roll that caused the Valgrind error was reverted in https://chromium.googlesource.com/chromium/src/+/3c80ac9fd48da3d11852eecd6999053d6d84c56c
      
      Original issue's description:
      > Suppress Uninitialized access in ExtensionManagement::Refresh
      >
      > BUG=418234
      > TBR=miu@chromium.org
      >
      > Committed: https://crrev.com/459b9796ff2ba105e8a6bae4c7e63508ea83bb67
      > Cr-Commit-Position: refs/heads/master@{#297028}
      
      TBR=miu@chromium.org,oshima@chromium.org
      NOTREECHECKS=true
      NOTRY=true
      BUG=418234
      
      Review URL: https://codereview.chromium.org/610753002
      
      Cr-Commit-Position: refs/heads/master@{#297074}
      830628b8
    • hans's avatar
      Revert of Roll Clang 216630:217949 (patchset #5 id:80001 of... · ad663341
      hans authored
      Revert of Roll Clang 216630:217949 (patchset #5 id:80001 of https://codereview.chromium.org/587433002/)
      
      Reason for revert:
      Reverting due to http://crbug.com/418234. Clang was branching on undefined values.
      
      Original issue's description:
      > Roll Clang 216630:217949
      >
      > Also make the script revert local changes before 'svn co'
      > rather than afterwards to avoid merge conflicts if a previously
      > patched file changes upstream.
      >
      > BUG=410810
      >
      > Committed: https://crrev.com/ba4cf8bb6dc77ea033fe13989eb604d6069daa97
      > Cr-Commit-Position: refs/heads/master@{#296870}
      
      TBR=thakis@chromium.org,brettw@chromium.org
      NOTREECHECKS=true
      NOTRY=true
      BUG=410810
      
      Review URL: https://codereview.chromium.org/614453002
      
      Cr-Commit-Position: refs/heads/master@{#297073}
      ad663341
    • danakj's avatar
      Add nullptr support to scoped_ptr. · 2299e91d
      danakj authored
      This adds support to use nullptr to construct, assign, or return a
      scoped_ptr<T> and scoped_ptr<T[]>. Support for this requires the use
      of a move-only constructor.
      
      The changes are:
      
      - Add a constructor that takes decltype(nullptr) as a parameter. This
      allows behaviour such as scoped_ptr<T>(nullptr), but also allows a
      function with return type scoped_ptr<T> to "return nullptr;" instead
      of "return scoped_ptr<T>();".
      
      - Add an operator=(decltype(nullptr)) that resets the scoped_ptr to
      empty and deletes anything it held.
      
      - Add/Modify a constructor to take a scoped_ptr<U,E>&& parameter for
      constructing a scoped_ptr from another using move-only semantics. This
      piece is critical for allowing the function returning nullptr to be
      assigned to some other scoped_ptr at the callsite. In particular, take
      the following code:
        scoped_ptr<T> Function() { return nullptr; }
        scoped_ptr<T> var = Function();
      In this case the constructor which takes a nullptr allows Function() to
      be written, but not to be used. The move-only constructor allows the
      assignment from Function() to var. See "C++11 feature proposal:
      Move-only constructors" on chromium-dev for more explanation why.
      
      The scoped_ptr<T> class already had a constructor which took
      scoped_ptr<U,E> as an argument, so this was changed to be
      scoped_ptr<U,E>&& instead. The scoped_ptr<T[]> class had no such
      constructor, so a scoped_ptr&& constructor was added. These match
      the constructors found on the unique_ptr class.
      
      - Remove the RValue type and the contructor that constructs a
      scoped_ptr from an RValue. Change Pass() to return a scoped_ptr&&
      instead of a scoped_ptr::RValue, to avoid the type conversion and
      remove some complexity. This is done with a new emulation macro that
      still provides Pass() and makes the type go down the MoveOnlyType
      path in base::Callback code.
      
      This adds base_unittests to demonstrate and use these changes.
      
      The use of Pass() remains unchanged until std::move() is written
      or allowed. At that time std::move() could be used instead of Pass.
      
      R=brettw@chromium.org, jamesr@chromium.org
      
      Review URL: https://codereview.chromium.org/599313003
      
      Cr-Commit-Position: refs/heads/master@{#297072}
      2299e91d
    • sky's avatar
      Makes it so we don't start watchdog when running under debugger · d9875966
      sky authored
      There is nothing worse than stepping through the debugger and suddenly
      hitting the watchdog timer DCHECK. If you're running under a debugger
      seems like you don't care about the watchdog thread. So, make it so we
      don't start watchdog in this case.
      
      BUG=none
      TEST=none
      R=rtenneti@chromium.org
      
      Review URL: https://codereview.chromium.org/573683003
      
      Cr-Commit-Position: refs/heads/master@{#297071}
      d9875966