Commit Graph

41490 Commits

Author SHA1 Message Date
Alex Wilson
29ef6eb52d Fix BMenu behaviour/ABI by reinstating BMenu::InvalidateLayout()
It turns out,this is an old method added by Be, and is not really related to BView::InvalidateLayout(bool). In fact BMenu::InvalidateLayout() does something separate, but related to the BView method. I was wrong to delete this method, since it needs to have action taken each time it is called, so moving these actions into LayoutInvalidated() only worked sometimes (when the BView was considered to have a valid layout).

I have added a comment for future hackers so that they don't delete this method.
2011-12-08 14:09:35 -07:00
Alexander von Gluck IV
104c404c7e Move connector code into new connector source file.
* clean up some comments
* most of this movement is prep for AUX display transactions
2011-12-08 14:03:43 -06:00
Alexander von Gluck IV
4540f5e929 Create connector source file, move connector bus calls into it
* this will help break apart some of the sources
* display bus communications really don't belong with GPU operations
* rename functions to better describe their actions
2011-12-08 13:42:47 -06:00
Rene Gollent
be63c91230 Fix incomplete/incorrect type lookup.
- Add accesor to CompoundType to expose the particular compound kind.

- Implement aforementioned accessor in DwarfCompoundType, and ensure
  DwarfTypeFactory populates it appropriately.

- Modify GlobalTypeLookup to make use of the address and compound
  subtype kinds when trying to match a type.

Due to the lack of matching against the subtype, we would previously wind
up matching anonymous compound types against those of their parents, resulting
in the wrong type getting assigned to their value nodes.

Fixes #8190.
2011-12-07 21:54:44 -05:00
czeidler
8cfe0f458c When calculating the min, max and pref size, relax the range of the right and bottom tab. These tabs are set to the layout borders again when solving the layout. 2011-12-08 11:22:09 +13:00
Michael Lotz
c5fd97e486 Remove needless call to String(), there's an operator for that.
The operator const char*() automatically converts to the needed type
so the explicit BString::String() call isn't needed here. Thanks to
Clemens for pointing that out.
2011-12-07 17:09:14 +01:00
Alex Wilson
8f0b7c3fb8 Update doxygen docs for Layout, LayoutItem on invalidation. 2011-12-06 23:39:16 -07:00
Alex Wilson
ea0a06e213 Remove redundant checks for fParent before calling _InvalidateParentLayout(). 2011-12-06 22:35:46 -07:00
Rene Gollent
4cc7fee152 Fix broken debug output. 2011-12-06 21:32:09 -05:00
Rene Gollent
e0031e05f9 Merge branch 'master' of ssh://git.haiku-os.org/haiku 2011-12-06 21:27:45 -05:00
François Revol
8408920712 Fix rect calculation.
Not sure what the intended height is though. 16 or 17?
2011-12-07 03:05:58 +01:00
François Revol
09a0999c68 Style fix
Yes, I do need to change my glasses.
2011-12-07 02:49:43 +01:00
Rene Gollent
9dd2d63b15 - We now build up the argument list in a BStringList and map argv to those.
The previous solution had various issues where argv pointed to stack-based
  objects that had potentially been destroyed/overwritten already. Fixes
  #8173.

- Modify _SetupGDBArguments() to return an error code and check for it
  accordingly.
2011-12-06 20:07:06 -05:00
Rene Gollent
c0954dc661 - We now build up the argument list in a BStringList and map argv to those.
The previous solution had various issues where argv pointed to stack-based
  objects that had potentially been destroyed/overwritten already. Fixes
  #8173.

- Modify _SetupGDBArguments() to return an error code and check for it
  accordingly.
2011-12-06 19:56:04 -05:00
François Revol
cee4855acb Better calculation of the Deskbar replicant size
Patch by RQ from ticket #8156 that accounts for the workspaces layout.
2011-12-07 01:24:09 +01:00
Michael Lotz
97680106f0 Add a userland version of the guarded heap to libroot_debug.
The guarded heap uses mprotect() to protect freed/unallocated pages so
that any access to such a page results in a segfault. It also installs
a segfault handler that in such an event prints some info about the
accessed page and then calls the debugger with a meaningful message.

It implements the same interface as the debug heap so it can simply be
swapped out by changing the Jamfile. As it doesn't support most of the
extra debug features (wall checking is obviously superfluous, but it
also doesn't help in leak checking) and as it is hugely space
inefficient I left it disabled for now.
2011-12-07 00:40:47 +01:00
Michael Lotz
674e76845d Returning a string stored in a local BMessage doesn't work.
Instead use a BString object as return type that copies the string
so that it stays valid after return.
2011-12-07 00:26:07 +01:00
Michael Lotz
f28e19f5be Use the right value as id for the BTranslatorRoster call.
The loop counter was used as the id directly instead of using it as the
index into the translator_id array.
2011-12-07 00:21:21 +01:00
Michael Lotz
e6f323bb57 Strings owned by local stack objects can't be returned.
The BString is destroyed when the function returns and takes the
storage pointed to by BString::String() with it, so returning such a
pointer is bogus. Instead the return type is now a BString which takes
over ownership of the string.
2011-12-07 00:16:23 +01:00
Michael Lotz
f589e913a7 Fix end of range check to not read beyond the allocation.
The counter j is equal to fTeamCount if no matching team was found in
the team array. Therefore using it as an index into the team array was
invalid.
2011-12-07 00:10:17 +01:00
Michael Lotz
5e5eef0b5b Fix the page need calculation, it was possibly off by one. 2011-12-07 00:09:31 +01:00
Siarzhuk Zharski
02e8a1d136 Fix stdc++ linkage problem for setmime.
* Adding setmime was incorrect - the wrong [non-stdc++] section was
  used. Sorry.
2011-12-06 21:49:33 +01:00
Aleksas Pantechovskis
e9c0da3452 Haiku clone of the BeOS setmime tool added
* This tool was created and implemented in draft during GCI 2011
  by Aleksas Pantechovskis, <alexp.frl@gmail.com>;
* Later it was heavily refactored and optimized to Haiku Coding
  Standards by Siarzhuk Zharski;
* Icons support still missing;
* Thank you for the contribution, Aleksas!

Signed-off-by: Siarzhuk Zharski <zharik@gmx.li>
2011-12-06 20:55:53 +01:00
Michael Lotz
da3ce43440 Erase the entry only after its last use. CID 11042. 2011-12-06 20:00:48 +01:00
Michael Lotz
011002e5e4 Fix uses of member after deleting the object. CID 10535, 10534. 2011-12-06 19:37:46 +01:00
Michael Lotz
8eec72dcab Use safe length measure function and fix length usage.
* We may get non-terminated strings so we need to use the
  UTF8NextCharLen() version that works with a length. Previously we may
  have read beyond buffers, possibly leading to crashes.
* Also the length parameter is used as an actual length and not as
  buffer size. The length check was wrong before, which resulted in the
  function returning too early if an offset was supplied.
* Added a comment about the guaranteed 0 termination in one case.
* Minor cleanup.
2011-12-06 19:15:36 +01:00
Michael Lotz
9f65f3dd66 Rename variable so it is clear what is measured (bytes). 2011-12-06 19:13:26 +01:00
Michael Lotz
dd26f81c56 Add an UTF8NextCharLen() version that takes a string length.
This one works with non-terminated strings that we may need to handle.
It also validates that the sequence is valid UTF-8 so it results in
the same behaviour as the version that is used when converting to
codes (syncing the enumeration and drawing behaviour).
2011-12-06 19:09:56 +01:00
Michael Lotz
fb3c47ebad Fix passing non-terminated string to font functions.
The string that is built for hashing the escapements for missing
chars was not 0 terminated, leading to accesses past the string.
Depending on what followed an allocation that could lead to too long
strings being sent to the app_server for evaluation (where, due to
defensive, programming nothing bad would actually happen). In the
unfortunate case that nothing followed the allocation (i.e. end of
heap area), it could also lead to an application crash.

Therefore ensure 0 termination of the string, check for allocation
failure and use memcpy() instead of a for loop to copy the bytes from
one string to the other.
2011-12-06 15:46:36 +01:00
Michael Lotz
ded69b4c3a Only the to be protected range needs to be non-wired.
When setting memory protection, only ensure/wait for the range that
needs to be protected to not be wired instead of requiering the whole
area to be non-wired. The memory protection is done page wise and
having some parts of the area wired shouldn't preclude other parts to
be protected.
2011-12-06 15:39:56 +01:00
Michael Lotz
62bb375688 Restructure wait_for_thread_etc() to make it easier to follow.
* Avoid needless adding of the death entry if the sem is gone already.
* Delete objects as soon as they aren't needed anymore and return
  early where possible.
* Contain the thread == NULL case in its block and return from there as
  well instead of non-obviously figuring out what happened later.
* Pull out the return code asignment.
* Minor cleanup.
2011-12-06 02:30:17 +01:00
Michael Lotz
da329fc012 Add missing asignment of return code in wait_for_thread_etc().
While it was detected that the thread is in the destruction phase
and that it was necessary to wait and then have a valid status code
in the death entry, that status code wasn't actually returned. This
lead to uninitialized values for the return code even though
wait_for_thread[_etc]() would return B_OK.
2011-12-06 01:53:27 +01:00
Siarzhuk Zharski
7f4de88213 GLTeapot 3D model "teapot.data" is not needed anymore.
* 'teapot.data' was obsoleted by completing GCI 2011 task and should not
  be installed on the target systems.
2011-12-05 23:36:59 +01:00
Aleksas Pantechovskis
1bc51c2392 Teapot 3D model data moved to app resources
* GLTeapot 3D model data moved from the text file "teapot.data" into
  Application resources;
* Fixes #4934 and completes GCI 2011 task made by Aleksas Pantechovskis.
  Thanks for contribution!!!

Signed-off-by: Siarzhuk Zharski <zharik@gmx.li>
2011-12-05 22:35:20 +01:00
Humdinger
a2ef4fa88a Updated Finnish catkeys. 2011-12-05 15:20:24 +01:00
Niels Sascha Reedijk
496c0f946d Update catalogs from Pootle. 2011-12-05 09:26:19 +01:00
Michael Lotz
ebdb8247fd Move mutex initialization earlier, analogous to hrev43320.
Avoids crashing if the bus manager init fails. Also fixes CID 10846.
2011-12-05 03:00:24 +01:00
Michael Lotz
a395486027 Fix leaking the report items. CID 10880, 10881 and 10882. 2011-12-05 02:53:15 +01:00
Michael Lotz
500553860e Fix missing null check. CID 10937. 2011-12-05 02:37:35 +01:00
Michael Lotz
04c140226c Use the right form of delete. Fixes CID 11037. 2011-12-05 02:29:26 +01:00
Michael Lotz
ef2eaedc2e Account for full-/lowspeed errors and ensure an error is set.
For full- and lowspeed devices the unused ping status bit works as an
additional error bit (albeit it's so generic that it isn't really
useful). Include that bit when the error counter counts down to zero.

Also ensure that an error is returned if the error counter reaches
zero, but print a warning if none of the describing bits are set.
2011-12-05 01:42:23 +01:00
François Revol
30fc876c38 Only use PCI strings for x86 for now. On m68k at least those make the boot tgz exceed the floppy image size.
Maybe this should be moved to BuildSetup, or just discarded, they are only used for printing vendor names at boot...
2011-12-05 00:41:34 +01:00
Stephan Aßmus
80abc6322c Fall back to running test_registrar from the same directory.
As a last fall-back, try to launch the test_registrar from the same
directory as run_test_registrar. This makes launching the app_server
test environment from a volume without Query support work.
2011-12-04 22:13:12 +01:00
Michael Lotz
2872aba0a7 Fix missing reference to the old group with lock still held.
Removing the team from the group may have released the last reference
to the group and freed it. Since we still have a locker on that group
it would later crash on unlock, therefore we need a reference to the
old group before removing the team from it.
2011-12-04 20:14:24 +01:00
Michael Lotz
336967aafd Add more debugger commands to closer inspect the guarded heap. 2011-12-04 18:47:55 +01:00
Michael Lotz
4a7b48203e Try smaller sizes if creating an area failed.
Depending on the use case the grow size may be too large to fit into
address space holes. Instead of failing try with smaller sizes until
it either worked or doesn't make sense anymore (< 1MB).
2011-12-04 18:43:20 +01:00
Michael Lotz
01eb710a91 Use a free list to make the guarded heap perform less horribly.
Pages that are freed are added to the tail of the list while allocation
candidates are taken from the head. Therefore pages that have been free
the longest are preferred, making immediate re-use less likely.

Also avoid looking for pages if the free count already tells that the
allocation can't be fulfilled.
2011-12-04 18:40:11 +01:00
Stephan Aßmus
df30e677a7 Replaced mention of "SVN" with "version control system". 2011-12-04 14:51:47 +01:00
Michael Lotz
5cbe06f482 Allow replacing the object cache with the guarded heap.
This allows to use the debug features of the guarded heap also on
allocations made through the object cache API. This is obivously
horrible for performance and uses up huge amounts of memory, so the
initial and grow sizes are adjusted accordingly.

Note that this is a rather simple hack, using the object_cache pointer
to transport the allocation size. The alignment is neglected completely.
2011-12-04 13:52:06 +01:00
Michael Lotz
390a6e2e02 Add support for optional inline stack traces in guarded heap. 2011-12-04 12:56:59 +01:00