Commit Graph

33669 Commits

Author SHA1 Message Date
Artur Wyszynski
cee04e8074 Fixed various errors/warnings reported by cppcheck:
* memory leaks
* resource leaks
* added const's to getters
* removed a few reundant conditions


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-08 22:50:38 +00:00
Artur Wyszynski
c0cd8cf199 Added cppcheck wrapped for use with Haiku sources (it's a tool for static c/c++ code analysis)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-08 20:39:52 +00:00
Michael Lotz
f6a6245c89 * Adding malloc_debug.h that exposes the malloc_debug API.
* Moving some functions around, removing and adding others for the public API.

I've written a blog post at haiku-os.org to go as documentation for this
introducing the API and the other helpful bits.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-08 01:27:21 +00:00
Rene Gollent
7438e94206 Fix spacing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-08 00:47:11 +00:00
Rene Gollent
807bdfdf67 As pointed out by mmlr, we only need to provide the symbol, and only in the case of gcc2.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-08 00:46:22 +00:00
Rene Gollent
a5c2457fa8 Re-add dev_t version of FSGetDeskDir for bin compat reasons: BeIDE (unfortunately) appears to make use of some of the private FSUtils calls. Reimplemented call to use the normal FSGetDeskDir ignoring the passed in volume argument since we no longer have a desktop directory any place else. Fixes the problem reported in #5135.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-08 00:36:25 +00:00
Michael Lotz
7f8ffb252f Also add /boot/common/add-ons to ADDON_PATH. I don't know why this wasn't done
in r23974, but seeing that it was added to the runtime_loader default paths as
well I take it this was an oversight.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-07 18:47:37 +00:00
Michael Lotz
60fb713d19 Must only advance by step sizes, otherwise we may end up with misaligned pages
again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-07 16:55:43 +00:00
Michael Lotz
b07ef504a0 Add a memalign test that checks for valid alignments and fills/verifies
allocated buffers to validate that the full allocated size is actually usable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-07 02:11:31 +00:00
Michael Lotz
160abe2685 Sync two locking changes from kernel heap. This just moves the page locking into
the contiguous page allocation function and unlocks a bin locker a bit earlier.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-07 02:02:13 +00:00
Michael Lotz
b7d3ddaa0e Sync kernel heap with alignment handling fixes, simplifications and performance
improvements from debug heap in r35422.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-07 01:59:53 +00:00
Michael Lotz
638a24fa52 * Seperate the raw page wise allocation and allocations from bins.
* Make the contiguous page allocation capable of aligning the allocation
  and make it more clever by checking up front if there's a chance of getting
  enough pages at all, by giving up earlier if the page count can't be fit
  anymore, and in the alignment case by only checking the pages which have a
  valid alignment.
* If the alignment requirement is > B_PAGE_SIZE we now use page allocation
  directly, because the bins aren't necesarily aligned on their size past
  B_PAGE_SIZE anymore.
* When doing aligned bin allocation, calculate the aligned size up front and
  choose the right heap for the allocation.
* Also when doing aligned bin allocations we not only need to round up the size
  but also ensure that the bin we choose is aligned at all.
* Moved adding leak check info into it's own function.

Fixes various misalignment problems when working with alignments > B_PAGE_SIZE
or when using alignments < allocation size. Also the directly aligned page
allocations now only use up as many pages as actually required instead of
allocating based on the rounded up to align size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-07 01:09:27 +00:00
Fredrik Holmqvist
629dc0f55d Patch by mmadia to echo that BasicCommandLineTools isn't availble on the platform. Fixes #5365.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-06 15:57:31 +00:00
Fredrik Holmqvist
1b72402c99 Patch by mmadia "In function AddSymlinkToHaikuImage(), mkdir -p "${dirTokens}" needs the '$' escaped.". This fixes #5373.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-06 15:46:08 +00:00
Fredrik Holmqvist
80fc2bee46 Patch by mmadia to add iconv to vim. Fixes #5132.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-06 15:41:37 +00:00
Stephan Aßmus
a487da80ba * Make a BStatusBar comfortable to use without any text labels.
* In SetBarHeight(), use InvalidateLayout() when used with layout management.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-06 09:48:37 +00:00
Rene Gollent
f0599fd4e4 Use synchronous launch. This isn't generally an issue in Deskbar since we only launch one thing at a time anyways. Fixes being unable to launch things from Deskbar if Tracker wasn't running.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-06 02:48:19 +00:00
Axel Dörfler
c029fc9705 * Added directory/symlinks for /boot/var/log, and /boot/log/tmp to the
BeOSCompatibility package.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-05 14:18:20 +00:00
Stephan Aßmus
85874d8dd3 When a Window is created for holding BViews attached to an offscreen bitmap,
always behave as if within a transaction. Otherwise all drawing calls to such
BViews wait for the server to finish the request. This change gives a tremendous
speed boost for these situations and is compatibly with BeOS, since there you
also had to call Sync() before drawing a bitmap that was painted with attached
views.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-05 12:06:15 +00:00
François Revol
eadd244c0f Fallback to greadlink (for OSX) (it must be installed with macports).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-05 09:41:37 +00:00
François Revol
29bbb0ca9f Fix stream redirection order so stderr actually goes to /dev/null.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-05 09:28:40 +00:00
Stephan Aßmus
bc00016122 Patch by "notzed": Adapt ARM platform stubs for recent VM changes. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-05 08:20:11 +00:00
Philippe Saint-Pierre
de4212d411 NetServer: Clear the IFF_AUTO_CONFIGURED as needed. It was cleared at reboot, but not when the config file was updated.
Fixing ticket #3912.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-05 02:30:38 +00:00
Philippe Saint-Pierre
767d444609 MediaPlayer Playlist:
* Reset the DropIndex when the drag is exiting the window.
 * Otherwise, the anticipation rect isn't set back on when you enter again the window.

Fixes ticket #3199.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-05 00:55:33 +00:00
Axel Dörfler
a28ad48075 * Added _SIZEOF_ADDR_IFREQ() macro as existing on FreeBSD.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35408 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-04 20:40:35 +00:00
Ingo Weinhold
4dafcc3b3b Since we potentially split segments into different regions, we need to
consider that when filling in the text and data ranges of the image info.
This fixes #5361 and #5351, caused by libtracker.so not finding its own
image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-04 19:01:11 +00:00
Ingo Weinhold
695f0b114b Moved resattr.cpp to src/bin, made it buildable for Haiku, and fixed a
warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-04 12:59:37 +00:00
Philippe Saint-Pierre
686c893326 desklink: --list fixes
* Don't assume that ids to be contiguous (and to start at 0).
 * Use the executable's name as the replicant view name (to ease its identification and removal)

Fixes ticket #5354.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-04 01:37:21 +00:00
Ingo Weinhold
ab2540c49c 80 columns limit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 21:23:52 +00:00
Ingo Weinhold
7986925f9f Use the same names for the HAIKU_[HOST_]USE_32BIT and HAIKU_[HOST_]USE_XATTR
variables in the script and in generated BuildConfig file. Otherwise the
--update option wouldn't correctly pick it up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 21:21:39 +00:00
Ingo Weinhold
dc6a6a9b42 Reenabled interrupts before notifying the page writer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 21:11:31 +00:00
Ingo Weinhold
4e4cfe8f0a Missing page access debug markers. Fixes #5359.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 21:07:23 +00:00
Ingo Weinhold
ffe8b20cda Clear HAIKU_SHARED_LIBSTDC++ and HAIKU_SHARED_LIBSUPC++ when the compiler
doesn't know them. Not sure why that was commented out -- only this way the
build system knows that the libs aren't available. Fixes the non-Haiku build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 20:37:23 +00:00
Ingo Weinhold
25daf1cf1e * Build libsupc++.so and libstdc++.so only when they aren't provided by the
compiler. Fixes #5322 (the ones in /boot/develop would be overwritten).
* Simplified the Jamfile building these libraries.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 20:19:53 +00:00
Ingo Weinhold
d8141a0e2a Removed the commented out scanning of the inactive queue when no paging is
going on. I only wanted to have it in the repository in case we decide at a
later point that it is a good idea after all.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 19:05:30 +00:00
Ingo Weinhold
9908d834be Forgot to add this one in the previous commit: The PageCacheLocker does have
its own source file now that the page daemon source file is gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 18:55:52 +00:00
Ingo Weinhold
40bb94819e * Removed useless return parameter from vm_remove_all_page_mappings().
* Added vm_clear_page_mapping_accessed_flags() and
  vm_remove_all_page_mappings_if_unaccessed(), which combine the functionality
  of vm_test_map_activation(), vm_clear_map_flags(), and
  vm_remove_all_page_mappings(), thus saving lots of calls to translation map
  methods. The backend is the new method
  VMTranslationMap::ClearAccessedAndModified().
* Started to make use of the cached page queue and changed the meaning of the
  other non-free queues slightly:
  - Active queue: Contains mapped pages that have been used recently.
  - Inactive queue: Contains mapped pages that have not been used recently. Also
    contains unmapped temporary pages.
  - Modified queue: Contains unmapped modified pages.
  - Cached queue: Contains unmapped unmodified pages (LRU sorted).
  Unless we're actually low on memory and actively do paging, modified and
  cached queues only contain non-temporary pages. Cached pages are considered
  quasi free. They still belong to a cache, but since they are unmodified and
  unmapped, they can be freed immediately. And this is what
  vm_page_[try_]reserve_pages() do now when there are no more actually free
  pages at hand. Essentially this means that pages storing cached file data,
  unless mmap()ped, no longer are considered used and don't contribute to page
  pressure. Paging will not happen as long there are enough free + cached pages
  available.
* Reimplemented the page daemon. It no longer scans all pages, but instead works
  the page queues. As long as the free pages situation is harmless, it only
  iterates through the active queue and deactivates pages that have not been
  used recently. When paging occurs it additionally scans the inactive queue and
  frees pages that have not been used recently.
* Changed the page reservation/allocation interface:
  vm_page_[try_]reserve_pages(), vm_page_unreserve_pages(), and
  vm_page_allocate_page() now take a vm_page_reservation structure pointer.
  The reservation functions initialize the structure -- currently consisting
  only of a count member for the number of still reserved pages.
  vm_page_allocate_page() decrements the count and vm_page_unreserve_pages()
  unreserves the remaining pages (if any). Advantages are that reservation/
  unreservation mismatches cannot occur anymore, that vm_page_allocate_page()
  can verify that the caller has indeed a reserved page left, and that there's
  no unnecessary pressure on the free page pool anymore. The only disadvantage
  is that the vm_page_reservation object needs to be passed around a bit.
* Reworked the page reservation implementation:
  - Got rid of sSystemReservedPages and sPageDeficit. Instead
    sUnreservedFreePages now actually contains the number of free pages that
    have not yet been reserved (it cannot become negative anymore) and the new
    sUnsatisfiedPageReservations contains the number of pages that are still
    needed for reservation.
  - Threads waiting for reservations do now add themselves to a waiter queue,
    which is ordered by descending priority (VM priority and thread priority).
    High priority waiters are served first when pages become available.
  Fixes #5328.
* cache_prefetch_vnode(): Would reserve one less page than allocated later, if
  the size wasn't page aligned.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 18:53:52 +00:00
Ingo Weinhold
2735cad982 Added missing include.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 18:47:07 +00:00
Ingo Weinhold
cf99b9ab60 Added VMCache::CacheRef() accessor.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 18:46:29 +00:00
Axel Dörfler
22991e1d53 * Use the is_writing flag to determine whether or not we may write back a block
that does not have a transaction.
* This should fix #5340.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 13:16:22 +00:00
Michael Lotz
029f4e9317 * Add an inline CurrentPoseList() that returns either the filtered or normal
pose list and replaced the rather ugly "fFiltering ? ..." everywhere with it.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-02 17:56:52 +00:00
Michael Lotz
cc5b851813 No need to lock out the normal typeahead when filtering doesn't apply (i.e. in
icon mode). And a little automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-02 17:37:53 +00:00
Michael Lotz
e33d4e74c2 Update the test to cover a wider width range now that truncating doesn't crash
anymore. Also make that test string a bit more complicated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 22:03:11 +00:00
Jérôme Duval
7f2f5e05b0 update from Jerome Leveque, with style changes by me (I hope you don't mind).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 21:27:42 +00:00
Adrien Destugues
c055de4e49 Incomplete handling of moving items around in a list. Child items get lost when you move their parent, but I feel the code is getting too messy and I'm not sure what's the best way to fix that.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 21:18:11 +00:00
Adrien Destugues
8c325f8097 Fix some more bugs in the locale preflet lists. Dragging from one list to the other should now always work, while drawing inside a list is not finished, working on it now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 19:53:43 +00:00
Axel Dörfler
9fcbc27e27 * Removed the ChainRunnerGetHostByNameHack from libmail.so. Should it still
be needed in Haiku, one could easily fix that.
* Automatic whitespace cleanup.
* Minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 19:11:19 +00:00
Michael Lotz
5bc9fb9d24 * Replace the truncate_string() helper function with a new, simplified version.
* Remove no longer necessary support functions.
* The new version uses a single BString as input/output parameter and only
  modifies that one by removing non-fitting chars and inserting the ellipsis
  where appropriate, so avoids copying around bytes/chars/strings in a few
  places. It uses the new Chars functions of BString so also no need for manual
  multibyte handling.
* Adjusted the BFont and ServerFont usage of truncate_string() which are both
  simplified by using the single BString. It avoids a lot of temprary
  allocations and string copying. The char * version of BFont
  GetTruncatedStrings() now uses the BString version and not the other way
  around anymore which requires us to allocate temporary BString objects, it's
  not worse than before though.
* This fixes a bunch of problems with the previous functions like always
  prepending the ellipsis for B_TRUNCATE_BEGINNING, crashing on short enough
  widths, violating the width in the B_TRUNCATE_END case when the width was
  short enough, non-optimal truncation in a few cases and sometimes truncation
  where none would've been needed. Also fixes #4128 which was a symptom of the
  broken B_TRUNCATE_BEGINNING.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 18:43:03 +00:00
Oliver Tappe
ecbd2b3054 * added optional package for ABI-compliance-checker, which can be used to check the ABI
compatibility between two different versions of a shared library.
Even when using this tool, you still need to make up your mind about compatibility, but
IMHO it helps a lot.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 17:04:49 +00:00
Michael Lotz
8806dfd057 Adding test that shows that B_TRUNCATE_BEGINNING mode is essentially broken.
Worse yet for a small enough length it actually crashes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 13:39:06 +00:00