mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-14 22:47:12 +00:00
This patch implements the support needed to handle exceptions that occur during the construction of objects dynamically allocated via the 'Allocator' interface. In this case, the compiler automatically invokes a special delete operator that takes the allocator type (as supplied to 'new') as second argument. The implementation of this delete operator has been added to the 'cxx' library. Because the operator delete is called without the size of the object, we can use only those allocators that ignore the size argument of the free function and print a warning otherwise. The added 'Allocator::need_size_for_free()' function is used to distinguish safe and unsafe allocators.
This is generic part of the Genode implementation. It consists of two parts: :_Core_: is the ultimate root of the Genode application tree and provides abstractions for the lowest-level hardware resources such as RAM, ROM, CPU, and generic device access. All generic parts of Core can be found here - for system-specific implementations refer to the appropriate 'base-<system>' directory. :_Base libraries and protocols_: that are used by each Genode component to interact with other components. This is the glue that holds everything together.