1. 23 Apr, 2015 2 commits
    • Dan Stoza's avatar
      libgui: Allow an IGBProducer to disable allocation · 9de7293b
      Dan Stoza authored
      Adds a new method IGBP::allowAllocation, which controls whether
      dequeueBuffer is permitted to allocate a new buffer. If allocation is
      disallowed, dequeueBuffer will block or return an error as it
      normally would (as controlled by *ControlledByApp).
      
      If there are free buffers, but they are not of the correct dimensions,
      format, or usage, they may be freed if a more suitable buffer is not
      found first.
      
      Bug: 19801715
      Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
      9de7293b
    • Dan Stoza's avatar
      libgui: Change BufferQueue to use free lists · 0de7ea75
      Dan Stoza authored
      BufferQueue used to choose free buffers by scanning through its array
      of slots and picking one based on timestamp. This changes that
      mechanism to use a pair of free lists: one with buffers attached and
      one without. This makes it easier to choose either type of free slot
      depending on the needs of the current operation.
      
      Fixes an issue with the first version of this change, found in bugs
      20482952, 20443314, and 20464549.
      
      Bug: 13175420
      Change-Id: I9b6e83cfe8f9b4329a976025cb8e291d51fb6d4a
      0de7ea75
  2. 22 Apr, 2015 5 commits
  3. 21 Apr, 2015 1 commit
    • Dan Stoza's avatar
      libgui: Fix CPU rendering on Surface · c62acbd1
      Dan Stoza authored
      When the surface damage code went in, it incorrectly assumed that if
      an application was doing CPU rendering, it would be using lock and
      unlockAndPost instead of dequeue and queue, so it repurposed the dirty
      region too aggressively. This change keeps it from clobbering the
      dirty region if a CPU producer is attached.
      
      Bug: 20431815
      Change-Id: Id4dfd71378311ea822f0289f6de2d20a7bd84014
      c62acbd1
  4. 20 Apr, 2015 1 commit
  5. 17 Apr, 2015 1 commit
    • Dan Stoza's avatar
      libgui: Change BufferQueue to use free lists · 8dddc990
      Dan Stoza authored
      BufferQueue used to choose free buffers by scanning through its array
      of slots and picking one based on timestamp. This changes that
      mechanism to use a pair of free lists: one with buffers attached and
      one without. This makes it easier to choose either type of free slot
      depending on the needs of the current operation.
      
      Bug: 13175420
      Change-Id: Ic8398e7511bd11a60a1c82e3ad2ee271c9822be1
      8dddc990
  6. 15 Apr, 2015 10 commits
  7. 14 Apr, 2015 1 commit
  8. 10 Apr, 2015 3 commits
    • Jeff Sharkey's avatar
      dfc30ae3
    • Jeff Sharkey's avatar
      Command to move private app data between volumes. · e3637242
      Jeff Sharkey authored
      New "mvuserdata" command will move all private app data from one
      volume UUID to another.  It leverages the existing "cp" toybox
      command to do the heavy lifting for all known users, preserving
      details like timestamps and permissions.  It invokes restorecon()
      to correctly label the new location when the copy is finished.
      
      Changes installd to no longer drop capabilities, so we run as root
      again.  This also allows us to exec "cp" with CAP_DAC_OVERRIDE and
      CAP_FOWNER still in effect.
      
      Bug: 19993667
      Change-Id: I1f407a7c4a1af97ca5afc27b04eb16b4936cbdef
      e3637242
    • ywen's avatar
      Fix a memory corruption issue when vector resize · aef0445c
      ywen authored
      There is memory corruption in below code
      
      const Rect* prev = &dst[prevIndex];
      dst.add(Rect(prev->right, top, right, bottom));
      
      prev points to a memory of vector dst, when dst resize in add()
      call, the memory that prev points to will be copy to the new
      allocated vector memory and the old memory will become undefined
      
      Avoid pointer in this case, use a local copy instead
      
      Change-Id: I4d95ceedd00c8fb615ac153082ade1b1ce0d0fa8
      aef0445c
  9. 09 Apr, 2015 8 commits
  10. 08 Apr, 2015 3 commits
    • Mark Salyzyn's avatar
      Merge "dumpstate: scrub APANIC" · ad436ab5
      Mark Salyzyn authored
      ad436ab5
    • Mark Salyzyn's avatar
      dumpstate: scrub APANIC · f423b57d
      Mark Salyzyn authored
      Bug: 19525200
      Change-Id: Ia2d2857cac953fb4ceafb66ddf775d89d7a777b1
      f423b57d
    • Jeff Sharkey's avatar
      Plumb through volume UUID when building paths. · c03de091
      Jeff Sharkey authored
      Since app data paths can live on expanded storage devices, accept the
      target volume UUID when building paths.  The null UUID indicates the
      default internal storage.
      
      To improve readability, start using std::string in several places,
      which throws when allocations fail.  For now, perform last-second
      sanity checks on incoming path arguments, but we'll eventually want
      to check arguments as they come through installd.cpp, instead of
      crashing the entire daemon.
      
      Also remove "lib" symlink code from install() and make_user_data(),
      since we're no longer supporting /data/app-lib.  The framework
      already uses linklib() to create the right symlink for the selected
      ISA-specific library dir.
      
      Bug: 19993667
      Change-Id: Ib9343575ffb62bf3981e19375de8f3822fc31e28
      c03de091
  11. 07 Apr, 2015 5 commits