Form XObject vòng 2: rút object khỏi form thật sự — sửa trong form mới được LƯU
Build Windows portable / build (push) Canceled after 0s
Build Windows portable / build (push) Canceled after 0s
CI vòng 1 bắt đúng lỗi thiết kế: FPDFText_SetText trên con trong form KHÔNG đánh dấu dirty_streams của form (chỉ RemovePageObject/InsertPageObjectAtIndex mới làm — xem cpdf_pageobjectholder.cpp) nên mọi sửa in-place trong form không bao giờ được ghi ra file. Test canary fail chính xác ở điểm này. - Đổi feature pdfium-render pdfium_latest(7543) -> pdfium_7350 (cả ff-engine lẫn app): mở remove_object cho Form XObject qua blanket impl PdfPageObjectsCommon (wrapper 0.8.37 sót gate 7543 dù binding có đủ); API 7350 là subset của DLL bblanchon mới, đã quét 0 hàm 7543-only. - Mọi sửa/xoá con trong form = RÚT THẬT khỏi form (FPDFFormObj_RemoveObject, thứ tự path sâu trước + cùng cha con lớn trước) -> form dirty -> ProcessForm regenerate stream khi lưu. SetText con trong form = SetTextMode mới NestedRecreate: rút khỏi form + tạo lại ở cấp trang giữ font gốc qua token (probe như tầng 0 reflow; thiếu glyph -> nhúng lại bytes/cùng họ), matrix đã compose. - CI test thêm --test-threads=1: PDFium serialize qua 1 mutex toàn cục, 1 test panic khi giữ lock poison mutex làm 17 test song song chết oan. Docs cập nhật theo (12-phase4-summary.md Iteration 4). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -43,8 +43,10 @@ jobs:
|
||||
|
||||
# Máy dev không có Rust — CI là nơi duy nhất chạy test engine.
|
||||
# Fail test = fail build, không publish bản hỏng.
|
||||
# --test-threads=1: PDFium serialize qua 1 mutex toàn cục; 1 test panic
|
||||
# khi đang giữ lock sẽ poison mutex làm mọi test song song chết oan.
|
||||
- name: Run engine tests
|
||||
run: cargo test -p ff-engine
|
||||
run: cargo test -p ff-engine -- --test-threads=1
|
||||
|
||||
- name: Build release
|
||||
working-directory: app/src-tauri
|
||||
|
||||
Reference in New Issue
Block a user