// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if NET_4_0 || BOOTSTRAP_NET_4_0 || MOONLIGHT
+#if NET_4_0 || MOONLIGHT || MOBILE
using System;
using System.Collections;
int idx, initial_idx;
int free_slot = -1;
- idx = initial_idx = RuntimeHelpers.GetHashCode (key) % len;
+ idx = initial_idx = (RuntimeHelpers.GetHashCode (key) & int.MaxValue) % len;
do {
object k = tmp [idx].key;
public void Add (TKey key, TValue value)
{
- TValue tmp;
if (key == default (TKey))
throw new ArgumentNullException ("Null key", "key");
int idx,initial_idx;
int free_slot = -1;
- idx = initial_idx = RuntimeHelpers.GetHashCode (key) % len;
+ idx = initial_idx = (RuntimeHelpers.GetHashCode (key) & int.MaxValue) % len;
do {
object k = data [idx].key;
lock (_lock) {
int len = data.Length;
int idx, initial_idx;
- idx = initial_idx = RuntimeHelpers.GetHashCode (key) % len;
+ idx = initial_idx = (RuntimeHelpers.GetHashCode (key) & int.MaxValue) % len;
do {
object k = data[idx].key;
if (k == key) {
lock (_lock) {
int len = data.Length;
int idx, initial_idx;
- idx = initial_idx = RuntimeHelpers.GetHashCode (key) % len;
+ idx = initial_idx = (RuntimeHelpers.GetHashCode (key) & int.MaxValue) % len;
+
do {
object k = data [idx].key;
if (k == key) {