Commit Graph

245 Commits

Author SHA1 Message Date
David Anderson
04827466b0 Rewrite the .smx parser.
This removes one the last remnants of the SourceMod 1.0 VM implementation.

The new parser introduces a number of design changes in the VM. First, the VM now takes greater responsibility for validating and sanity checking the structure of the SMX container format. Previously, malformed SMX files could easily crash SourcePawn. The loader now rejects files that have out-of-bounds offsets or incomplete sections. Complex sections, like debug info or the code stream, are verified lazily.

Internally, the sp_plugin_t structure has been removed. It has been replaced by a new LegacyImage class, designed to be independent from the SPVM API. This potentially lets us load code streams from non-.smx containers. More importantly, it removes a lot of bookkeeping and pre-computed state from PluginRuntime. The LegacyImage class is now responsible for handling debug info as well.

PluginRuntime is now intended to hold only cached or immutable data, and PluginContext holds all VM state. As such PluginContext is now responsible for allocating a plugin's runtime memory, not PluginRuntime.

Finally, some aspects of the loading process have been cleaned up. The
decompression and image handoff logic should now be easier to
understand.
2015-02-25 22:28:10 -08:00
David Anderson
fcaa5361c8 Don't expose mutable sp_native_t. 2015-02-24 23:10:18 -08:00
Asher Baker
6572989993 Merge pull request #213 from splewis/find-array-nonzero-blocks
Add block parameter to FindValueInArray native.
2015-02-24 22:37:49 +00:00
David Anderson
21f5400d9c Remove ICompilationData. 2015-02-24 02:03:57 -08:00
Nicholas Hastings
b9579a53ce Add missing impl for File.ReadUint16. 2015-02-18 04:50:20 -08:00
Nicholas Hastings
e88039d4e0 Fix FindFlagChar not finding char for AdminFlag_Custom6. 2015-02-03 10:32:34 -05:00
Nicholas Hastings
84a59c6fb7 Fix g_ReverseFlags array size. 2015-02-03 10:27:32 -05:00
Nicholas Hastings
19be28cc2e Rename g_FlagSet to g_FlagCharSet to avoid some confusion. 2015-02-03 10:26:28 -05:00
Nicholas Hastings
52514a96bd Fix "sm plugins refresh" not refreshing changed plugins. 2015-01-31 15:28:21 -05:00
Nicholas Hastings
8705aea634 Fix signed/unsigned compare warning in smn_adt_stack. 2015-01-27 17:59:55 -08:00
David Anderson
3040708d4e Merge pull request #215 from Thordin/more_handles
Increased handles to 32k
2015-01-26 11:24:46 -08:00
David Anderson
2382902fe4 Merge pull request #244 from alliedmodders/db-fix
Fix wrong value in transitional DBI callback. (bug 6292)
2015-01-23 14:07:22 -08:00
Nicholas Hastings
9f648879e5 Fix regression causing "BOT" to no longer be valid in adminsys for Steam identities. 2015-01-17 10:11:04 -05:00
David Anderson
49383e7391 Fix wrong value in transitional DBI callback. (bug 6292) 2015-01-16 00:33:29 -08:00
Nicholas Hastings
3929ff1f27 Fix typo on ArrayList.Erase native. 2015-01-04 11:58:44 -05:00
Peace-Maker
9b2e77711a Plugin_Failed == "An unrecoverable error"
Change the meaning of Plugin_Failed status to indicate, that the plugin
can't recover from the error.
Make sure those previously loaded plugins are shown correctly in sm
plugins info x.
2014-12-20 11:08:30 +01:00
Peace-Maker
0b131d6864 Pause dependent plugins on SetFailState (bug 6120)
When a plugin calls SetFailState it is paused and all natives it
registered are unavailable. Other plugins, which depend on those natives
keep running and error whenever they try to call those natives.

This correctly sets the dependent plugins to an error state as if the
plugin which called SetFailState was unloaded.
2014-12-20 11:07:57 +01:00
David Anderson
b1cb06c5ce Update DBI for transitional syntax. 2014-12-13 16:34:58 -08:00
David Anderson
722a23c818 Redo menu methodmaps. 2014-12-13 12:53:30 -08:00
Thordin
f27c33cd18 Increased handles to 32k 2014-12-07 21:50:40 -08:00
Sean Lewis
d2e01da287 Wrap 3rd parameter in FindValueInArray to check for existence. 2014-12-06 17:07:54 -06:00
Sean Lewis
3ef2bdcb8d Add block parameter to FindValueInArray native. 2014-12-06 03:21:53 -06:00
Asher Baker
50898d7a4f Merge pull request #208 from asherkin/long-lang-codes
Support long key names for languages (bug 6282)
2014-11-24 19:07:18 +00:00
Asher Baker
ced026cecc Support long key names for languages. (bug 6282) 2014-11-22 22:18:49 +00:00
David Anderson
be6da2f810 Merge pull request #173 from alliedmodders/tr-smc
Port SMC parsing API to transitional syntax.
2014-11-19 22:38:19 -08:00
David Anderson
0511543c76 Merge pull request #206 from alliedmodders/tr-files
Port files.inc to transitional syntax.
2014-11-18 18:56:07 -08:00
Nicholas Hastings
50400cf029 Remove unused variables. 2014-11-15 19:35:47 -05:00
David Anderson
79143d8b6e Port files.inc to transitional syntax. 2014-11-15 13:42:28 -08:00
David Anderson
f25953bb6c Merge pull request #187 from alliedmodders/tr-arrays
Update ArrayList for transitional syntax.
2014-11-15 13:04:29 -08:00
David Anderson
461dc3af3d Merge pull request #189 from alliedmodders/tr-tries
Port string maps to transitional syntax.
2014-11-15 12:52:37 -08:00
David Anderson
4cb29eb054 Port adt_stack to transitional syntax. 2014-11-15 12:46:17 -08:00
David Anderson
8479c2f067 Port SMC parsing API to transitional syntax. 2014-11-09 12:33:07 -08:00
David Anderson
6ba4bcb955 Port string maps to transitional syntax. 2014-11-08 17:43:28 -08:00
David Anderson
919a31df57 Update ArrayList for transitional syntax. 2014-11-08 16:31:33 -08:00
David Anderson
f16501d34a Simplify filesystem native implementation. 2014-11-08 15:44:35 -08:00
Nicholas Hastings
9021b23bc2 Fix crash on OpenDirectory with use_valve_fs if path not found.
Also fixes minor memory leak on bad path.
2014-10-28 13:57:40 -04:00
Nicholas Hastings
dca15ebabf Fix OpenDirectory with use_valve_fs requirement of trailing slash. 2014-10-28 13:53:27 -04:00
Nicholas Hastings
512fae4c25 Fix crash on Windows when dumping admin cache to file. 2014-10-08 17:31:02 -07:00
Nicholas Hastings
0f6063af60 Re-add DBI query throttling (r=dvander). 2014-09-18 22:02:32 -04:00
Nicholas Hastings
c62e7458f9 Disable RTTI for Loader, Logic, and JIT bins 2014-09-11 17:15:59 -07:00
Nicholas Hastings
e6fd19fb8c Fix crash regression from typo in 892edd9650 2014-09-09 22:05:59 -04:00
Nicholas Hastings
a597277a64 Merge pull request #153 from alliedmodders/auth-fixups
More auth fixups for Steam auth (bug 6243, r=asherkin).
2014-09-09 16:24:57 -04:00
Nicholas Hastings
b3dada65fa Fix build. 2014-09-09 13:21:01 -07:00
Nicholas Hastings
ad7d920ce0 Move menu natives from core to logic 2014-09-05 08:24:40 -07:00
Nicholas Hastings
1bf4eb80bd Cache Steam ID and rendered forms when caching networkID 2014-09-04 16:14:34 -07:00
Nicholas Hastings
f1dc24c089 Move Steam2/3 id rendering logic to CPlayer 2014-09-04 15:27:44 -07:00
Nicholas Hastings
892edd9650 Allow BindIdentity and FindAdminByIdentity to take more SteamID formats for steam auth type 2014-09-04 15:26:12 -07:00
David Anderson
a1dc1101f7 Fix build. 2014-09-03 22:33:05 -07:00
Nicholas Hastings
7f3656215b Consistency Fixes (ID->Id, AuthString->AuthId) 2014-09-03 15:13:30 -07:00
Nicholas Hastings
3fba1d2817 Fix some nits 2014-09-03 10:50:11 -07:00