Age | Commit message (Collapse) | Author |
|
|
|
|
|
This is just a silly little feature that I thought was a bit neat. :^)
|
|
Update ProcessManager, top and WSCPUMonitor to handle the new format.
Since the kernel is not allowed to use floating-point math, we now compile
the JSON classes in AK without JsonValue::Type::Double support.
To accomodate large unsigned ints, I added a JsonValue::Type::UnsignedInt.
|
|
Patch contributed by "pd"
|
|
Additionally the Alt modifier now generates the correct characters, as do
Insert/Delete/PgUp/PgDown.
Patch contributed by "pd"
|
|
This lets us avoid some math during paint events.
Patch contributed by "pd"
|
|
Walk the DOM and construct a parallel style tree that points back to the DOM
and has the relevant CSS property values hanging off of them.
The values are picked based on naive selector matching. There's no cascade
or specificity taken into account yet.
|
|
The LibC build is a bit complicated, since the toolchain depends on it.
During the toolchain bootstrap, after we've built parts of GCC, we have
to stop and build Serenity's LibC, so that the rest of GCC can use it.
This means that during that specific LibC build, we don't yet have access
to things like std::initializer_list.
For now we solve this by defining SERENITY_LIBC_BUILD during the LibC
build and excluding the Vector/initializer_list support inside LibC.
|
|
|
|
This allows us to construct a Vector from an initializer list like so:
Vector<Object> objects = { object1, object2, object3 };
|
|
|
|
|
|
We walk the entire DOM and check all selectors against all elements. Only
id, class and tag name are checked right now. There's no ancestor stack
or compound selectors. All in good time :^)
|
|
This will be responsible for matching selectors and creating LayoutStyle
objects for the document and its elements.
|
|
We were using a DoublyLinkedList<T> simply because it supported remove().
This patch consolidates the SinglyLinkedList iterators and adds remove().
|
|
|
|
Get rid of the ConstIterator classes for these containers and use templated
FooIterator<T, ...> and FooIterator<const T, ...> helpers.
This makes the HashTable class a lot easier to read.
|
|
We can achieve the same with just a VectorIterator<const Vector, const T>.
|
|
|
|
|
|
|
|
|
|
We were forgetting to plumb through the inline capacity in the Base typedef.
|
|
|
|
|
|
|
|
|
|
This means you can now do this:
void harmonize(NonnullRefPtrVector<Voice>& voices)
{
for (auto& voice : voices) {
voice.sing(); // Look, no "->"!
}
}
Pretty dang cool :^)
|
|
This is a slot-in convenience replacement for Vector<NonnullRefPtr<T>> that
makes accessors return T& instead of NonnullRefPtr<T>&.
Since NonnullRefPtr guarantees non-nullness, this allows you to access these
vector elements using dot (.) rather than arrow (->). :^)
|
|
This avoids putting pressure on kmalloc() during backtrace symbolication.
Since we dump backtrace for every process that exits, this is actually a
decent performance improvement for things like GCC that chain a lot of
processes together.
|
|
I'd like to try doing DOM -> style tree -> layout tree. I'm not exactly sure
how it's gonna work, but we'll figure it out as we go.
|
|
If we get an NP page fault in a process, and the fault address is in the
kernel address range (anywhere above 0xc0000000), we probably just need
to copy the page table info over from the kernel page directory.
The kernel doesn't allocate address space until it's needed, and when it
does allocate some, it only puts the info in the kernel page directory,
and any *new* page directories created from that point on. Existing page
directories need to be updated, and that's what this patch fixes.
|
|
Instead of PDE's and PTE's being weird wrappers around dword*, just have
MemoryManager::ensure_pte() return a PageDirectoryEntry&, which in turn has
a PageTableEntry* entries().
I've been trying to understand how things ended up this way, and I suspect
it was because I inadvertently invoked the PageDirectoryEntry copy ctor in
the original work on this, which must have made me very confused..
Anyways, now things are a bit saner and we can move forward towards a better
future, etc. :^)
|
|
|
|
Use __builtin_bswap() intrinsics for the byte swapping. Also don't swap on
systems where BYTE_ORDER != LITTLE_ENDIAN. This doesn't really affect us
at the moment since Serenity only targets x86, but I figured it doesn't hurt
to do things right. :^)
|
|
|
|
|
|
Further consolidation is of course possible, eg the Games/ programs
follow the same rules more or less.
|
|
Eventually I'd like to do some kind of bitmap layers, and we definitely want
alpha channel support then, so let's just not paint ourselves into an
uncomfortable corner early on. :^)
|
|
|
|
Obviously this only supports whatever PNG files that load_png() can decode
at the moment.
|
|
We'll be making a lot of trees here, so let's share code during bootstrap.
Eventually some of these classes are gonna want custom trees but for now
we can just fit them all into the same clothes.
|
|
I didn't implement \uXXXX-style escape in this patch. That's a FIXME.
|
|
|
|
|
|
If the provided length is 0, there's no need to dereference the const char*.
|
|
|
|
|
|
|