Files
AnyPS5/docs/dev/debt/libfontconfig.md
T

4.3 KiB

libfontconfig technical debt

Unknown function info

  • FcCharSet and FcMatrix exports (libfontconfig) - FcCharSetCreate, FcCharSetDestroy, FcCharSetAddChar, FcCharSetMerge, FcCharSetSubtractCount and FcMatrixMultiply follow the public fontconfig.h, fccharset.c and fcmatrix.c. The module's fontconfig version is unknown and no console or title caller was read. Character sets hold no reference count and no constant state, because nothing exported here can share one yet.

Functional

  • Font sets and object sets are based on disassembly of firmware 13.42 libfontconfig.sprx (SHA-256 74d7414445f8687c1d22a92fa3c994d2e5fa304e6699dc84dcc5459af7da8472), not the stock desktop Fontconfig layout. Font-set capacity is stored in bytes, grows by sixteen pointers, and stops at 1024 entries; each insertion duplicates the caller's pattern. Object sets allocate their pointer arrays inline and preserve the original argument order with duplicated names. Host safety returns on null destroy and null add, where the firmware accesses pointers without such checks. Console runtime behavior beyond disassembly is not verified.
  • Pattern-dependent font-set operations require FcPatternDuplicate and FcPatternDestroy, which still throw in this branch. PR #14435 supplies the real pattern operations; until it lands, only empty-set lifecycle and object sets work at runtime. Source-linked tests supply typed pattern duplication/destruction mocks and check independent ownership, 1024-capacity bounds, and ordering.

Callable exports

  • Remaining callable exports - 42 of the 53 callable NIDs match the public 3.20 catalogue and the selected export metadata from two version-labelled images (SHA-256 3694ba82b2fbff0d5d789f91938906ebc8ee45262aaaba2b333d490f7e0c24ab). The labels are not authenticated. Prototypes and behavior are unverified; these declarations throw through NotImplemented_nid_no_patch and implement no runtime functionality.
Name NID
FcLangSetDestroy +6aV1q-CAIg
FcPatternRemove +XnLLwt2q-Y
FcPatternGetInteger 2BFkLGmS+Ao
FcConfigGetCurrent 2M54M-SKV-k
FcPatternGetBool 3zWpyQga5N0
FcPatternAddBool 6LGRGSLdSdQ
FcFontList 7+Gq-0xFybo
FcFontSetMatch 8DLBHeMsS1k
FcConfigSubstitute 8v4Xk2b+C1k
FcPatternGetMatrix 9x04OJBX0J0
FcInit AwGzFwnaitQ
FcInitBringUptoDate Ck9k-L7rz-I
FcPatternGetString CkZ778Hu6Ng
FcFontRenderPrepare CvqQqWqcO-0
FcPatternAddDouble D-WphAs+Lh8
FcPatternDuplicate DPxdK61lRaE
FcFontMatch FqneT2syjGE
FcPatternFilter H9TOtqlqmHM
FcConfigCreate HGtDYp4ddNE
FcPatternGetFTFace HjlABSyLzNg
FcPatternEqual HxFAszDPXuE
FcPatternAddInteger LNzAovAnOd8
FcLangSetAdd Lsu4XJJ3V2o
FcFontSort MApHziT-St4
FcPatternGetCharSet NKrjlO4HBhg
FcPatternDel Om2ww9GOmes
FcConfigDestroy Oor7ukCXZOE
FcPatternReference QZuEIDVT42s
FcPatternGet Xmsz9ffM-9g
FcPatternAddMatrix Zqa5tqMhOrI
FcPatternAddString bU30lh8YpkE
FcLangSetHasLang gbtAblHLpQg
FcLangSetCreate jjz2C1StauM
FcFreeTypeCharIndex l240XTbw2vk
FcPatternDestroy nVkAFM4iCS4
FcPatternAddCharSet paHcj4DoPQ4
FcDefaultSubstitute sqEJZ2yMVNw
FcPatternAddLangSet vqX-PYS3MPc
FcPatternGetLangSet x55q-bC-i+8
FcPatternCreate xGAEbwA7FNo
FcConfigReference yQed09jA3VA
FcPatternFormat zqe0Dw9BCpc