darlinghq / darling-dmg

FUSE module for .dmg files (containing an HFS+ filesystem)
http://www.darlinghq.org
GNU General Public License v3.0
273 stars 45 forks source link

Never swap to host by default HFSPlusCatalogFileOrFolder. #65

Closed jief666 closed 6 years ago

jief666 commented 6 years ago

I notice that HFSPlusCatalogFileOrFolder are always swapped to host by listDirectories, but not always bu function that call stat. It happens few times, when I read the code, that I didin't know if HFSPlusCatalogFileOrFolder was swapped or not. I think it's better to have a consistent rule : swap at read, swap on demand, or swap manually. Here is a small refactor that swap to host manually. Test on a big image with rsync -a -X --crtimes -c as usual.

LubosD commented 6 years ago

OK, but please kill that commented-out code.

jief666 commented 6 years ago

I left it at first so you can easily see the differences. But I'm happy that you've asked to remove it. Dead code cost time...

jief666 commented 6 years ago

Finally, having look at https://github.com/sgan81/apfs-fuse/blob/master/ApfsLib/Endian.h, I've taken the idea and implemented it in darling-dmg. I'd call it "automatic swap on demand". I'm using this local branch since a week now and it's working great. My EncryptedReader I'm about to propose is using that too. Would you take it if I commit that here ? Or do you prefer manual swap ? (It's ok, I can't switch my encrypted reader to manual swap, it's not a big deal).

jief666 commented 6 years ago

Hey, would that be possible to take that pul request. I found a big problem in HFSCatalogBTree that make a lot of file not showing up, and I think it'll conflict. So it'd be easier if I do that fix once this one is taken. Thanks.

jief666 commented 6 years ago

Thanks.