`SDKCall` has existing semantics that a `-1` retval indicates null, so use that and writes an empty string to the buffer.
Consumers can tell the difference between `""` and `NULL` by checking if the return value is `0` or `-1`.
* More TR natives
* Fix small typo
* Fix another typo
* Fix TR_AllSolid description
* Change Disp to Displacement
* Reorder params in TR_GetSurfaceName
* Fix TR_GetSurfaceName
* Another fix for TR_GetSurfaceName -_-
* Change if block to switch
* Make handle first param in TR_GetSurfaceName
* Reorder TR_GetStartPosition params
* Make TranslatePartitionFlags static
* Change tabs used for formatting to spaces
* Change inline comment style to be consistent with rest of file
This simplifies non-sdk build scripts by removing their loops over SM.archs. Instead the top-level
build script will re-evaluate them for each architecture.
* Make mac/win lookups lowercase'd
* Revert #709 & 81042cc
* Adjust HashPolicy implementation across sourcemod
Basically, in order to implement our own (actual) hash policy in
`PluginSys.h`, we needed to remove the blanket implementation of `hash`
that was used before. Now, each policy must implement `hash` along with
`matches` in order to be used with `NameHashSet`. While this does force
us to change every implementation of policies across the entirety of
sourcemod, it allows core to use flexible implementations of `hash`.
* Remove logic duplication
* Improve lowercase checks
* Create DatabaseConfBuilder & remove locking
* Remove all refcounting
This is part 1/n in regards to this PR's rework
* Move db conf lookup out of RunThreadPart
* Return default configuration for failed lookups
* RefPtr members & stop leaks
* fix uint comparison warning
Prepared statements can return multiple result sets since MySQL 5.5. That can happen when calling stored procedures using `CALL x();`.
This change removes the previous caching of result bindings, since the number of fields in a result can differ from result set to result set. This could potentially have a negative impact on prepared statements always only returning one result set, since the result binding buffers are recreated everytime the statement is executed instead of once. That difference should be negligible.
Fixes#823.
MySQL defines its own timespec_t. Official mysql builds are built using VS2013, so you still need to compile the client library yourself to be able to link it, but this change makes the dbi extension compatible with future versions already.