Commit Graph

2032 Commits

Author SHA1 Message Date
ben marsh
ee0966e47c Allow controlling the GAllowUnversionedContentInEditor setting via a cvar.
#jira


#ROBOMERGE-SOURCE: CL 9102057 via CL 9102147
#ROBOMERGE-BOT: (v443-9013191)

[CL 9102352 by ben marsh in Main branch]
2019-09-25 14:56:54 -04:00
robert manuszewski
c6c8158760 Fixed a possible hang in GC when the number of objects to be destroyed was dividable by TimeLimitEnforcementGranularityForDeletion (100)
#rb none


#ROBOMERGE-SOURCE: CL 8814209 via CL 8814232 via CL 8859703
#ROBOMERGE-BOT: (v425-8812723)

[CL 8860278 by robert manuszewski in Main branch]
2019-09-18 21:00:19 -04:00
marc audy
90e9615d50 Properly account for nativization in changes to allow Python to receive certain blueprint events
#jira UE-80244
#rnx


#ROBOMERGE-SOURCE: CL 8747459 via CL 8747681 via CL 8782254
#ROBOMERGE-BOT: (v422-8689730)

[CL 8784623 by marc audy in Main branch]
2019-09-17 19:22:09 -04:00
Marc Audy
8df336162c Copying //UE4/Dev-Anim to Dev-Main (//UE4/Dev-Main) @ 8782600
#rb
#rnx

[CL 8783278 by Marc Audy in Main branch]
2019-09-17 19:12:19 -04:00
johan torp
d9256044f7 Fixed StaticFindObject bug
#jira UE-79929
#rb robert.manuszewski


#ROBOMERGE-SOURCE: CL 8734585 via CL 8740979
#ROBOMERGE-BOT: (v422-8689730)

[CL 8741062 by johan torp in Main branch]
2019-09-17 07:26:50 -04:00
johan torp
c10a501437 Removed use of deprecated NAME_INDEX typedef
#rb trivial
#jira UE-80291


#ROBOMERGE-SOURCE: CL 8686454 via CL 8689518
#ROBOMERGE-BOT: (v422-8689730)

[CL 8695284 by johan torp in Main branch]
2019-09-16 13:01:39 -04:00
robert manuszewski
ff86a6d863 Make StaticFindObject() handle searching for any package with a package-specifying string
The change in behavior was introduced by an optimization in UE 4.23

#jira UE-79929
#rb robert.manuszewsk

(ushell-p4-cherrypick of 8633853 by Johan.Torp)


#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: johan.torp
#ROBOMERGE-SOURCE: CL 8686296 via CL 8689504
#ROBOMERGE-BOT: (v422-8689730)

[CL 8695250 by robert manuszewski in Main branch]
2019-09-16 13:00:36 -04:00
Ben Marsh
0cd5834eda IncludeTool: Add support for declaring IncludeTool settings from within source files, using the syntax:
// [[ IncludeTool: Inline ]]

Also replace all existing inline files with the above markup.

#rb none
#rnx

[CL 8693338 by Ben Marsh in Main branch]
2019-09-16 11:40:03 -04:00
jamie dale
a287480c36 Allow FString instances containing code units outside of the basic multilingual plane to be losslessly processed regardless of whether TCHAR is 2 or 4 bytes.
Most UE4 platforms use a 2-byte TCHAR, however some still use a 4-byte TCHAR. The platforms that use a 4-byte TCHAR expect their string data to be UTF-32, however there are parts of UE4 that serialize FString data as a series of UCS2CHAR, simply narrowing or widening each TCHAR in turn. This can result in invalid or corrupted UTF-32 strings (either UTF-32 strings containing UTF-16 surrogates, or UTF-32 code points that have been truncated to 2-bytes), which leads to either odd behavior or crashes.

This change updates the parts of UE4 that process FString data as a series of 2-byte values to do so on the correct UTF-16 interpretation of the data, converting to/from UTF-32 as required on platforms that use a 4-byte TCHAR. This conversion is a no-op on platforms that use a 2-byte TCHAR as the string is already assumed to be valid UTF-16 data. It should also be noted that while FString may contain UTF-16 code units on platforms using a 2-byte TCHAR, this change doesn't do anything to make FString represent a Unicode string on those platforms (ie, a string that understands and works on code points), but is rather just a bag of code units.

Two new variable-width string converters have be added to facilitate the conversion (modelled after the TCHAR<->UTF-8 converters), TUTF16ToUTF32_Convert and TUTF32ToUTF16_Convert. These are used for both TCHAR<->UTF16CHAR conversion when needed, but also for TCHAR<->wchar_t conversion on platforms that use char16_t for TCHAR along with having a 4-byte wchar_t (as defined by the new PLATFORM_WCHAR_IS_4_BYTES option).

These conversion routines are accessed either via the conversion macros (TCHAR_TO_UTF16, UTF16_TO_TCHAR, TCHAR_TO_WCHAR, and WCHAR_TO_TCHAR), or by using a conversion struct (FTCHARToUTF16, FUTF16ToTCHAR, FTCHARToWChar, and FWCharToTCHAR), which is the same pattern as the existing TCHAR<->UTF-8 conversion. Both the macros and the structs are defined as no-ops when the conversion isn't needed, but always exist so that code can be written in a portable way.

Very little code actually needed updating to use UTF-16, as the vast majority makes no assumptions about the size of TCHAR, nor how FString should be serialized. The main places were the FString archive serialization and the JSON reader/writer, along with some minor fixes to the UTF-8 conversion logic for platforms using a 4-byte TCHAR.

Tests have been added to verify that an FString representing a UTF-32 code point can be losslessly converted to/from UTF-8 and UTF-16, and serialized to/from an archive.

#jira
#rb Steve.Robb, Josh.Adams


#ROBOMERGE-SOURCE: CL 8676728 via CL 8687863
#ROBOMERGE-BOT: (v421-8677696)

[CL 8688048 by jamie dale in Main branch]
2019-09-16 05:44:11 -04:00
brandon schaefer
a715ea4f14 Deprecate GIsRequestingExit
Get GIsRequestingExit now by IsEngineRequestingExit()

Set GIsRequestingExit now by RequestEngineExit(const TCHAR* Reason) or RequestEngineExit(const FString& Reason)
NOTE If Reason is 4 or less chars it will generate an ensure to force a reason to exit

The reason behind this change is right now setting GIsRequestingExit to true can cause many things to break mainly early on and with out any sort of log warning we have entered this state. We should wrap this behind a function to allow for proper handling

#rb Chris.Babcock, Michael.Trepka, Michael.Noland
#jira UE-79933
[FYI] Michael.Noland


#ROBOMERGE-SOURCE: CL 8649683 via CL 8653683
#ROBOMERGE-BOT: (v417-8656536)

[CL 8658680 by brandon schaefer in Main branch]
2019-09-12 14:21:26 -04:00
Per Larsson
f25279c470 Fix CIS issue UE4Editor Linux
#rb none

[CL 8655127 by Per Larsson in Main branch]
2019-09-12 10:35:35 -04:00
Per Larsson
70ec7da1da [AsyncLoading] Explicit shutdown of async loading
- reverted changes from CL 8231774
- added ShutdownAsyncThread in UObjectBaseShutdown

#jira UE-79704
#fyi Stefan.Boberg
#codereview pj.kack

[CL 8653832 by Per Larsson in Main branch]
2019-09-12 04:37:45 -04:00
marc audy
720d6b8b30 MoveTemp some async delegates
#jira
#rnx
#rb Robert.Manuszewski


#ROBOMERGE-SOURCE: CL 8634814 via CL 8637579
#ROBOMERGE-BOT: (v410-8635924)

[CL 8637603 by marc audy in Main branch]
2019-09-11 11:12:51 -04:00
marc audy
f2ba1b9474 Allow calling code to ImportText to avoid doing work to create the struct name used for error messages until it is actually needed.
#rb Steve.Robb, Michael.Noland
#jira


#ROBOMERGE-SOURCE: CL 8624616 via CL 8630200
#ROBOMERGE-BOT: (v409-8614070)

[CL 8631656 by marc audy in Main branch]
2019-09-10 21:15:06 -04:00
marc audy
d879362a59 Gate on a class being native rather than compiled from blueprint to allow python to receive blueprint implementable events correctly
#rb Fred.Kimberley
[FYI] Jamie.Dale, Zak.Middleton
#rnx
#jira


#ROBOMERGE-SOURCE: CL 8624223 via CL 8630176
#ROBOMERGE-BOT: (v409-8614070)

[CL 8631650 by marc audy in Main branch]
2019-09-10 21:14:54 -04:00
Chris Gagnon
2e87118a18 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) Interim 4.24.
#rb none

[CL 8614014 by Chris Gagnon in Main branch]
2019-09-10 11:35:20 -04:00
Jake Leonard
5066eeafde End the async loading thread loop on core uobject shutdown. This causes games to not crash on exit after changes from CL 8321295
#JIRA: UE-79704
#rb: Sam.Zamani, Josh.Markiewicz

[CL 8558911 by Jake Leonard in Main branch]
2019-09-06 16:47:56 -04:00
ben marsh
9974cb33fa Last batch of IncludeTool fixes (hopefully).
#jira
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 8376637 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v406-8472469)

[CL 8498119 by ben marsh in Main branch]
2019-09-04 15:56:47 -04:00
arciel rekman
d20a07ec2a Fix a compile issue (missing semicolon).
#rnx
#rb none
#jira none
[FYI] Ben.Marsh
#lockdown Cristina.Riveron

#ROBOMERGE-SOURCE: CL 8374691 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v406-8472469)

[CL 8497937 by arciel rekman in Main branch]
2019-09-04 15:42:32 -04:00
ben marsh
fb4078d777 More IncludeTool fixes.
#rb none
#rnx
#jira

#ROBOMERGE-SOURCE: CL 8374228 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v406-8472469)

[CL 8497914 by ben marsh in Main branch]
2019-09-04 15:40:51 -04:00
Marc Audy
181b245591 Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 8417635
#rb
#rnx

[CL 8420815 by Marc Audy in Dev-Framework branch]
2019-09-03 10:41:02 -04:00
dmitriy dyomin
43d2c7dffc Run GC tasks on hi-pri threads (big cores) on Android devices. Reduces GC time by 2.5x on high end devices
#rb jack.porter


#ROBOMERGE-SOURCE: CL 8370381 via CL 8371517 via CL 8372527
#ROBOMERGE-BOT: (v402-8361577)

[CL 8372717 by dmitriy dyomin in Main branch]
2019-08-29 11:47:10 -04:00
marc audy
09111e0765 Remove accidentally checked in diagnostic
#jira
#rnx


#ROBOMERGE-SOURCE: CL 8294846 via CL 8354221
#ROBOMERGE-BOT: (v401-8057353)

[CL 8354383 by marc audy in Main branch]
2019-08-27 17:23:50 -04:00
marc audy
c48ebb4d45 Make virtual UObject::Modify WITH_EDITOR. UObject::Modify remains defined as a forceinlined noop without editor to avoid having to fixup all existing code that exists in non-editor that calls Modify.
#rb Michael.Noland
#jira


#ROBOMERGE-SOURCE: CL 8293866 via CL 8353802
#ROBOMERGE-BOT: (v401-8057353)

[CL 8354009 by marc audy in Main branch]
2019-08-27 17:20:03 -04:00
Josh Markiewicz
d79515867d Copying //UE4/Dev-Online to Dev-Main (//UE4/Dev-Main)
- Up to CL8320930 from DevOnline and 8311605 Merge Down from Main
- skipped some Fortnite content/plugins/code where it tried to reintegrate files that had been moved pending investigation
#rb none

[CL 8321295 by Josh Markiewicz in Main branch]
2019-08-26 18:35:22 -04:00