re: Break it up, you two!: The zero width non-joiner
[Once again showing that it's a bad idea to motivate a discussion because people focus on the motivation rather than the actual topic.]Yes but without some context, in this case, people's response...
View Articlere: If you're going to write your own allocator, you need to respect the...
This is one reason I would prefer to work on a CPU where all misaligned access faulted. Less room for ambiguity if your thing faults all the time.(Although, I'd argue that altering the low bits of a...
View Articlere: If you're going to write your own allocator, you need to respect the...
The correct one would be that one (hopefully):struct EXTRASTUFF{ DWORD_PTR Awesome1; DWORD_PTR Awesome2;};[You're trying too hard. Just use DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT). -Raymond]
View Articlere: If you're going to write your own allocator, you need to respect the...
@Rodrigo -- here is my quick approach:struct EXTRASTUFF{ DWORD Awesome1; DWORD Awesome2;};static_assert(sizeof(EXTRASTUFF) <= MEMORY_ALLOCATION_ALIGNMENT)// error checking elided for expository...
View Articlere: Break it up, you two!: The zero width non-joiner
Yes, rn->m was a joke. Not a joke is how long it took Microsoft to fix the kerning (from keming). I guess, nobody was promised a bonus for that, that's why.
View Articlere: If you're going to write your own allocator, you need to respect the...
[You're trying too hard. Just use DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT). -Raymond]The K&R C handbook essentially says to do it this way. (It actually said to union with a type that was the...
View Articlere: Break it up, you two!: The zero width non-joiner
@xpclient: "I said TWO-letter accelerators are bad. Learn to read, you pre-schoolers. They should be single letter accelerators."What people are trying to tell you is that the primary reason for the...
View Articlere: If you're going to write your own allocator, you need to respect the...
I'm confused again.Aren't you supposed to use _aligned_malloc for lists ?So using new was on its own a bug when allocating 'SLIST_ENTRY', isn't that correct ?// Initialize the list header to a...
View Articlere: If you're going to write your own allocator, you need to respect the...
@James:(1) From Raymond's description, the list was a member of another structure so that wouldn't have worked anyway(2) There's no requirement I can find at the page you linked or a couple I followed...
View Articlere: If you're going to write your own allocator, you need to respect the...
@Evan:I have never understood the alignment thing.Never understood the rules behind when it is needed and when it should/recommended be used.Is it the pointer that need to be in a boundary or the...
View Articlere: Microsoft Money crashes during import of account transactions or when...
As a hardcore debugging n00b, just wondering.How do you determine what hex bytes changes to make based on the assembler changes? I've used WinDbg, but can you actually type replacement assembler code...
View Articlere: Microsoft Money crashes during import of account transactions or when...
Jeff, WinDbg comes with a (simple) built-in assembler. You can type "a <address" and start entering assembler commands. Type an empty line when you're done. Then you can use 'db' to view the...
View Articlere: Microsoft Money crashes during import of account transactions or when...
Writing a tool to take a set of binary patches like this, and a target binary file, and generate an Application Compatibility Database (.sdb) file to apply the patches would be fun. I don't think there...
View Articlere: Microsoft Money crashes during import of account transactions or when...
@Jeff: You can also go straight to the source. Similar manuals exist for other architectures.Intel® 64 and IA-32 Architectures Software Developer’s Manual, Instruction Set...
View Articlere: If you're going to write your own allocator, you need to respect the...
[I just checked. The assertion is there. Of course, assertions are enabled only in chk builds... -Raymond]I think CMPXCHG16B will itself fault if the structure is not 16-byte aligned.
View Articlere: If you're going to write your own allocator, you need to respect the...
@James:If I have some "struct S { ... SLIST_ENTRY list; ... };" and an object "struct S s;", technically speaking it's only the 's.list' field that needs that alignment. In other words, "&s +...
View Articlere: Break it up, you two!: The zero width non-joiner
@Evan and everyone else,I think the point xpclient was making is that the fact that the ribbon *has* these two letter accelerators is tacit admission in its implementation that it is less usable than...
View Articlere: Break it up, you two!: The zero width non-joiner
Jolyon Smith, are you saying the Ribbon interface should only ever be able to be used by a mouse? Having keyboard shortcuts for users who only want to use the keyboard while typing should not be able...
View Articlere: Microsoft Money crashes during import of account transactions or when...
Before the call to FStringFindCharacterA() there are 5 pushes, but the pseudo C code for FStringFindCharacterA() only takes 4 arguments:lea eax,[ebp-2E4h]push eax <<<<push 5Ch...
View Articlere: Break it up, you two!: The zero width non-joiner
@Evan, nope, the example you gave of Alt-FB is not a two-letter accelerator. Alt-F first opens the menu (in the old style). On the Ribbon, there are commands which require typing a total of...
View Article