
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк
рдЬрд╛рдирддреЗ рд╣реИрдВ , рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореЛрдЬрд╝рд┐рд▓рд╛ рдЯреАрдо рдиреЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд▓рд┐рдВрдХрд░ рдореЗрдВ рдПрдХ рдмрдЧ рдкрд░ рдХрджрдо рд░рдЦрд╛ - xul.dll рдЗрддрдирд╛ рд╕рдореГрджреНрдз рдирд┐рдХрд▓рд╛ рдХрд┐ рд▓рд┐рдВрдХрд░ рдЙрд╕ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рдФрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдирдВрдмрд░ рдПрдХ (рд╡рд┐рдВрдбреЛрдЬрд╝ 32 рдмрд┐рдЯ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред
рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ, "рдЕрдВрдбрд░-рдпреВрдЬреНрдб" рдПрдкреАрдЖрдИ рдХреЛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ 5 рд╡реЗрдВ рдФрд░ 7 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╣реБрдЖред
рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реЛрдЧреА рдХрд┐ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рд▓рдбрд╝рд╛рдИ рдЬрд╛рд░реА рдереА, рдЬрд┐рд╕реЗ рд╣рдо рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред
"рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рдмреИрд░реАрдореЛрд░?"
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрддрдирд╛ рдХреЛ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ "рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ" рдЦрдВрдб рд╕реЗ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдПрдореНрдмреЗрдбрд┐рдВрдЧред рдореЛрдЬрд╝рд┐рд▓рд┐рдпрди рдмрд┐рдЬрд▓реА рдХреЗ рдЭреЛрдВрдХреЗ рдХреЗ рд╕рд╛рде рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд░реВрдк рд╕реЗ рдЪрд▓реЗ рдЧрдП, рдЬрд┐рд╕рд╕реЗ рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдзреЛрдЦрд╛ рд╣реБрдЖред рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рд▓реЗрдХрд┐рди рд╕рдЪ рд╣реИред рдФрд░ рдЗрдирдХреНрдпреВрдмреЗрдЯрд░ рдХреА "рдирдИ" рдПрдкрд┐ рдЗрдирдХреНрдпреВрдмреЗрдЯрд░ рдореЗрдВ рдлрдВрд╕ рдЧрдИ рдереАред
рд▓реЗрдХрд┐рди рддрдм JavaXPCOM рд░рд╕рд╛рддрд▓ рдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЕрдм рдпрд╣ рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЭрдЯрдХрд╛ рдерд╛ред
рддреЛ, рд▓рд┐рдирдХреНрд╕ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдФрд░ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд▓рд┐рдВрдХрд░ рдХрд╣рд╛рдВ рд╣реИ?) рдпрд╣
рдПрд▓реНрд╕ рдХрдкреБрдд рдерд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдХрдВрдЬрд╝рд░реНрд╡реЗрдЯрд░реА рдореЗрдВ рдХрдорд░рд╛ рдмрдирд╛рдирд╛ рдФрд░ рдХреБрдЫ рдХрд░рдирд╛ рдерд╛ред
- рдмрдВрдЯрдирд╛, рд╕рд░!
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЪрд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ, "рдЕрдкреНрд░рдЪрд▓рд┐рдд" gtkmozembed рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ (рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ) рдФрд░ рдореИрдВ рдЗрд╕реЗ рдкреИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ 7 рд╡реЗрдВ рд╕реЗ 14 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рддрдХ рдЦреАрдВрдЪреВрдВрдЧрд╛ред рдФрд░ рдЕрдм рдореИрдВ рдХрдЪреНрдЪреЗ рдорд╛рд▓ рд╕реЗ рдУрдЧреЗрд▓рд┐рд╕ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ "рдЕрд╕реНрдерд╛рдпреА" рд╕рдорд╛рдзрд╛рди рдХреЗ
рд▓рд┐рдП рдореЛрдЬрд┐рд▓реЛрд╡рд┐рдЯреНрд╕ рдХреЗ рдХреБрдЯрд┐рд▓ рд╣рд╛рдереЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬреЛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╕реНрдерд╛рдпреА рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рдирд┐: рд╢реБрд▓реНрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдЙрдЫрд╛рд▓рднрд░реА рдмрджрд▓рд╛рд╡реЛрдВ рд╕реЗ рдмрдЪ рдЧрдпрд╛, рдлрд┐рд░ рд▓реЙрдЧрд┐рди рдХреЗ рд▓рд┐рдП рдирдП рдЗрдВрдЯрд░рдлреЗрд╕ (рд╢реАрдШреНрд░ рд╕реЗрд╡рд╛), рдлрд┐рд░ рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╕рд╛рде рдЕрдЬреАрдмрддрд╛, рдлрд┐рд░ рдмреВрд▓ рдХреЗ рд▓рд┐рдП PRBool рдХрд╛ рдирд╛рдо рдмрджрд▓ рд░рд╣рд╛ рдерд╛, рдФрд░ 10 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рддрдХ рдЕрдВрддрд░рд┐рдХреНрд╖ рдЖрд░рдХреНрд╖рд┐рдд рдлрд┐рд░ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдерд╛ред
- рдердореНрд╕, рд╕рд░!
рдлрд┐рд░ рдПрдХ рдирдЦрд░реЗ рдХреЗ рд╕рд╛рде рдирд╛рдЪрдиреЗ рд▓рдЧреЗ рдФрд░ рдЭреВрдордиреЗ рд▓рдЧреЗред рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ (рдФрд░ рдХрд╛рдлреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдПрдХ) xul.dll рд╕реЗ firefox.exe рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЗрдорд▓реЙрдХред
рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢ рдерд╛ рдЬрдм рдореИрдВрдиреЗ libsqlite3 рдореЗрдВ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реА рдЕрдЬреАрдм рдЖрдЧ рдХреЛ рдкрдХрдбрд╝рд╛ред рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдиреЗ рдПрдХ рднрдпрд╛рдирдХ рдбрдВрдк рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛ - рдПрдХ рдХреЙрд▓ рдкрд░ рдПрдХ рджреБрд░реНрдШрдЯрдирд╛ рд╣реБрдИ
size_t je_malloc_usable_size_in_advance(size_t size);
рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдКрдкрд░ рдХреА рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦреА
printf("strange crash below: je_malloc_usable_size_in_advance(%p) (%d)\n", je_malloc_usable_size_in_advance, size);
рдФрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реВрдиреНрдп рдХреА рд▓рдВрдмреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХреАред
- рдмрд┐рд▓реНрдХреБрд▓ рдХреЗрдк рдмрд╛рд╣рд░ рдЫрдбрд╝реА, рд╡рд╛рд╣!
10 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдУрдЧреЗрд▓рд┐рд╕ рдХрдЪреНрдЪреЗ рдорд╛рд▓ рдХреЗ рдПрдХ рдЕрдзреНрдпрдпрди рдиреЗ рдЦреБрдж рдореЛрдЬрд┐рд▓реЛрд╡рд┐рдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдПрдХ рд╣реИрдХ рдХреА рд╕реВрдЪрдирд╛ рджреА:
LIBS+=-Wl,--whole-archive libmozglue.a -Wl,--no-whole-archive -rdynamic
рдФрд░ рд╣рд╛рдВ, рдпрд╣ рдПрдХ рд╣реА libmozglue.a рдлрд╛рдпрд░рдлреЙрдХреНрд╕_рджреЗрд╡ рдкреИрдХреЗрдЬ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ - рдпрд╣ рдореАрдард╛ рдерд╛ред
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ 11 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЧреБрдкреНрдд libmozglue.a рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ libmozutil.a рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ 13 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрд╕рдиреЗ рдЕрдкрдирд╛ рдкреВрд░рд╛ рдирд╛рдо рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ред
рдЙрд╕реА 13 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдПрдХ рдЫреЛрдЯрд╛ рдФрд░ рдЕрдЧреЛрдЪрд░ mbft рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ libmozglue рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдлреА рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ - рд╣реИрд╢рдмрд╛рдЗрдЯреНрд╕ред рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╣реИрд░рд╛рди рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдкрд░рд┐рд╡рд╛рдж рдореЗрдВ рдХреНрдпреЛрдВ рдЧрд┐рд░ рд░рд╣рд╛ рд╣реИ? рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЧрд┐рд░рддрд╛ рд╣реИ рдХрд┐ HashKey (nsCID &) HashBytes рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╣реИрд╢рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИрд╢рдмрд╛рдЗрдЯреНрд╕ .cpp рдореЗрдВ рд╣реИред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рджреЗ рд╕реА
рдЯреЗрдмрд▓ рдкрд░ рдПрдХ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ
рд╣реИ-> op-
> рд╣реИрд╢ (рдХреБрдВрдЬреА) - рд╣реИрд╢рдмрд╛рдЗрдЯ рд╕реНрдерд┐рд░ рд░рд╣реЗред
14 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ JS_GC (рд╕рдВрджрд░реНрдн) рдХреА рдкреНрд░рддрд┐рдмрдВрдз JS_GC (JS_GetRuntime (рд╕рдВрджрд░реНрдн)) рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред
рдпрд╣ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЗрд╡рд▓ рдбреЗрдврд╝ рдХрд╛рд░реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!рдЕрдм рдореИрдВ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 14.0.1 рдкреИрдЪ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВред рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдП?