Branch Coverage

HashMap.xs
Criterion Covered Total %
branch 1562 3386 46.1


line true false branch
711 1 16 EXTRACT_NEW_ARGS(_max_size, _ttl);
0 17 EXTRACT_NEW_ARGS(_max_size, _ttl);
713 0 17 if (!map) croak("Failed to create HashMap::I32");
721 17 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 17 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 17 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
728 150023 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 150023 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 150023 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
736 50009 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 50009 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 50009 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
738 5 50004 if (!hashmap_i32_get(self, key, &value)) XSRETURN_UNDEF;
746 150004 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 150004 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 150004 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
754 3 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 3 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 3 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
762 7 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 7 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 7 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
764 2 5 if (!hashmap_i32_increment(self, key, &val))
773 5 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 5 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 5 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
775 2 3 if (!hashmap_i32_decrement(self, key, &val))
784 7 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 7 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 7 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
786 2 5 if (!hashmap_i32_increment_by(self, key, delta, &val))
795 6 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 6 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 6 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
796 0 6 RETVAL = self->size;
803 0 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
804 0 0 RETVAL = self->max_size;
811 0 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
812 0 0 RETVAL = (UV)self->default_ttl;
819 2 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 2 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 2 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
820 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
821 0 2 EXTEND(SP, self->size);
823 32 2 for (i = 0; i < self->capacity; i++) {
824 2 30 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
825 0 2 mXPUSHi(self->nodes[i].key);
831 1 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
832 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
833 0 1 EXTEND(SP, self->size);
835 16 1 for (i = 0; i < self->capacity; i++) {
836 2 14 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
837 0 2 mXPUSHi(self->nodes[i].value);
843 1 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
844 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
845 0 1 EXTEND(SP, self->size * 2);
847 16 1 for (i = 0; i < self->capacity; i++) {
848 2 14 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
849 0 2 mXPUSHi(self->nodes[i].key);
850 0 2 mXPUSHi(self->nodes[i].value);
857 14 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 14 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 14 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
858 0 14 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
859 72 4 while (self->iter_pos < self->capacity) {
861 10 62 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
10 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 10 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
862 0 10 EXTEND(SP, 2);
863 0 10 mXPUSHi(self->nodes[i].key);
864 0 10 mXPUSHi(self->nodes[i].value);
874 1 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
880 1 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
886 1 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
888 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
890 16 1 for (i = 0; i < self->capacity; i++) {
891 1 15 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
905 1 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 1 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
913 3 0 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 3 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
0 3 EXTRACT_MAP(HashMapI32, "Data::HashMap::I32", self_sv);
915 1 2 if (hashmap_i32_get(self, key, &value)) {
918 1 1 if (!hashmap_i32_put(self, key, default_value, 0))
933 32 29 EXTRACT_NEW_ARGS(_max_size, _ttl);
15 46 EXTRACT_NEW_ARGS(_max_size, _ttl);
935 0 61 if (!map) croak("Failed to create HashMap::II");
943 61 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 61 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 61 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
950 382726 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 382726 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 382726 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
958 100153 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 100153 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 100153 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
960 19 100134 if (!hashmap_ii_get(self, key, &value)) XSRETURN_UNDEF;
968 280020 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 280020 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 280020 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
976 10 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 10 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 10 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
984 15011 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 15011 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 15011 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
986 2 15009 if (!hashmap_ii_increment(self, key, &val))
995 5006 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 5006 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 5006 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
997 2 5004 if (!hashmap_ii_decrement(self, key, &val))
1006 8 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 8 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 8 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1008 2 6 if (!hashmap_ii_increment_by(self, key, delta, &val))
1017 31 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 31 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 31 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1018 0 31 RETVAL = self->size;
1025 4 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 4 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 4 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1026 0 4 RETVAL = self->max_size;
1033 5 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 5 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 5 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1034 0 5 RETVAL = (UV)self->default_ttl;
1041 6 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 6 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 6 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1042 2 4 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1043 0 6 EXTEND(SP, self->size);
1045 112 6 for (i = 0; i < self->capacity; i++) {
1046 32 80 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
25 7 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
4 21 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
4 0 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 2 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
1047 0 23 mXPUSHi(self->nodes[i].key);
1053 3 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 3 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 3 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1054 1 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1055 0 3 EXTEND(SP, self->size);
1057 48 3 for (i = 0; i < self->capacity; i++) {
1058 7 41 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
7 0 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 5 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
1059 0 5 mXPUSHi(self->nodes[i].value);
1065 3 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 3 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 3 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1066 1 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1067 0 3 EXTEND(SP, self->size * 2);
1069 48 3 for (i = 0; i < self->capacity; i++) {
1070 7 41 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
7 0 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 5 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1071 0 5 mXPUSHi(self->nodes[i].key);
1072 0 5 mXPUSHi(self->nodes[i].value);
1079 24 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 24 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 24 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1080 0 24 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1081 109 5 while (self->iter_pos < self->capacity) {
1083 20 89 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
19 1 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 19 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1084 0 19 EXTEND(SP, 2);
1085 0 19 mXPUSHi(self->nodes[i].key);
1086 0 19 mXPUSHi(self->nodes[i].value);
1096 1 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 1 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 1 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1102 4 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 4 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 4 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1108 4 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 4 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 4 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1110 2 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1112 64 4 for (i = 0; i < self->capacity; i++) {
1113 6 58 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
6 0 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
4 2 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3 1 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 3 if (II_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1127 8 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 8 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 8 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1135 9 0 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 9 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
0 9 EXTRACT_MAP(HashMapII, "Data::HashMap::II", self_sv);
1137 2 7 if (hashmap_ii_get(self, key, &value)) {
1140 0 7 if (!hashmap_ii_put(self, key, default_value, 0))
1155 1 8 EXTRACT_NEW_ARGS(_max_size, _ttl);
0 9 EXTRACT_NEW_ARGS(_max_size, _ttl);
1157 0 9 if (!map) croak("Failed to create HashMap::IS");
1165 9 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 9 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 9 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1172 80015 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 80015 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 80015 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1173 0 80015 EXTRACT_STR_VAL(value);
1181 50009 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 50009 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 50009 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1185 3 50006 if (!hashmap_is_get(self, key, &val, &val_len, &val_utf8))
1188 1 50005 if (val_utf8) SvUTF8_on(RETVAL);
1195 80004 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 80004 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 80004 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1203 3 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 3 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 3 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1211 5 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 5 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 5 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1212 0 5 RETVAL = self->size;
1219 0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1220 0 0 RETVAL = self->max_size;
1227 0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1228 0 0 RETVAL = (UV)self->default_ttl;
1235 2 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 2 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 2 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1236 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1237 0 2 EXTEND(SP, self->size);
1239 32 2 for (i = 0; i < self->capacity; i++) {
1240 2 30 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
1241 0 2 mXPUSHi(self->nodes[i].key);
1247 1 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 1 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 1 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1248 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1249 0 1 EXTEND(SP, self->size);
1251 16 1 for (i = 0; i < self->capacity; i++) {
1252 2 14 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1253 2 0 if (self->nodes[i].value) {
1256 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(sv);
1257 0 2 mXPUSHs(sv);
1259 0 0 XPUSHs(&PL_sv_undef);
1267 1 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 1 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 1 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1268 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1269 0 1 EXTEND(SP, self->size * 2);
1271 16 1 for (i = 0; i < self->capacity; i++) {
1272 2 14 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1273 0 2 mXPUSHi(self->nodes[i].key);
1274 2 0 if (self->nodes[i].value) {
1277 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(sv);
1278 0 2 mXPUSHs(sv);
1280 0 0 XPUSHs(&PL_sv_undef);
1288 3 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 3 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 3 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1289 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1290 16 1 while (self->iter_pos < self->capacity) {
1292 2 14 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1293 0 2 EXTEND(SP, 2);
1294 0 2 mXPUSHi(self->nodes[i].key);
1295 2 0 if (self->nodes[i].value) {
1298 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(vsv);
1299 0 2 mXPUSHs(vsv);
1301 0 0 XPUSHs(&PL_sv_undef);
1312 0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1318 0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1324 1 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 1 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 1 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1326 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1328 16 1 for (i = 0; i < self->capacity; i++) {
1329 1 15 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1334 1 0 : newSV(0);
1335 1 0 if (self->nodes[i].value && vutf8) SvUTF8_on(val);
0 1 if (self->nodes[i].value && vutf8) SvUTF8_on(val);
1348 0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1349 0 0 EXTRACT_STR_VAL(value);
1357 2 0 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 2 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
0 2 EXTRACT_MAP(HashMapIS, "Data::HashMap::IS", self_sv);
1359 1 1 if (hashmap_is_get(self, key, &val, &val_len, &val_utf8)) {
1361 0 1 if (val_utf8) SvUTF8_on(RETVAL);
1363 0 1 EXTRACT_STR_VAL(default_sv);
1364 0 1 if (!hashmap_is_put(self, key, _vstr, (uint32_t)_vlen, _vutf8, 0))
1379 2 16 EXTRACT_NEW_ARGS(_max_size, _ttl);
1 17 EXTRACT_NEW_ARGS(_max_size, _ttl);
1381 0 18 if (!map) croak("Failed to create HashMap::SI");
1389 18 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 18 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 18 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1396 80022 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 80022 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 80022 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1397 0 80022 EXTRACT_STR_KEY(key_sv);
1405 50012 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 50012 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 50012 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1406 0 50012 EXTRACT_STR_KEY(key_sv);
1408 3 50009 if (!hashmap_si_get(self, _kstr, (uint32_t)_klen, _khash, &value))
1417 80004 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 80004 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 80004 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1418 0 80004 EXTRACT_STR_KEY(key_sv);
1426 2 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 2 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 2 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1427 0 2 EXTRACT_STR_KEY(key_sv);
1435 15013 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 15013 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 15013 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1436 0 15013 EXTRACT_STR_KEY(key_sv);
1438 1 15012 if (!hashmap_si_increment(self, _kstr, (uint32_t)_klen, _khash, _kutf8, &val))
1447 5004 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 5004 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 5004 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1448 0 5004 EXTRACT_STR_KEY(key_sv);
1450 1 5003 if (!hashmap_si_decrement(self, _kstr, (uint32_t)_klen, _khash, _kutf8, &val))
1459 6 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 6 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 6 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1460 0 6 EXTRACT_STR_KEY(key_sv);
1462 2 4 if (!hashmap_si_increment_by(self, _kstr, (uint32_t)_klen, _khash, _kutf8, delta, &val))
1471 4 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 4 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 4 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1472 0 4 RETVAL = self->size;
1479 0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1480 0 0 RETVAL = self->max_size;
1487 0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1488 0 0 RETVAL = (UV)self->default_ttl;
1495 3 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 3 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 3 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1496 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1497 0 3 EXTEND(SP, self->size);
1499 48 3 for (i = 0; i < self->capacity; i++) {
1500 8 40 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
7 1 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 7 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1503 1 6 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
1504 0 7 mXPUSHs(sv);
1511 1 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 1 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 1 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1512 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1513 0 1 EXTEND(SP, self->size);
1515 16 1 for (i = 0; i < self->capacity; i++) {
1516 2 14 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
1517 0 2 mXPUSHi(self->nodes[i].value);
1523 2 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 2 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 2 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1524 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1525 0 2 EXTEND(SP, self->size * 2);
1527 32 2 for (i = 0; i < self->capacity; i++) {
1528 8 24 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
7 1 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 7 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1531 1 6 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
1532 0 7 mXPUSHs(sv);
1533 0 7 mXPUSHi(self->nodes[i].value);
1540 3 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 3 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 3 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1541 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1542 16 1 while (self->iter_pos < self->capacity) {
1544 2 14 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1545 0 2 EXTEND(SP, 2);
1549 0 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(ksv);
1550 0 2 mXPUSHs(ksv);
1552 0 2 mXPUSHi(self->nodes[i].value);
1562 0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1568 0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1574 1 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 1 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 1 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1576 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1578 16 1 for (i = 0; i < self->capacity; i++) {
1579 1 15 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1583 0 1 (void)hv_store(hv, self->nodes[i].key, kutf8 ? -(I32)klen : (I32)klen, val, 0);
1593 0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1594 0 0 EXTRACT_STR_KEY(key_sv);
1602 2 0 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 2 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
0 2 EXTRACT_MAP(HashMapSI, "Data::HashMap::SI", self_sv);
1603 0 2 EXTRACT_STR_KEY(key_sv);
1605 1 1 if (hashmap_si_get(self, _kstr, (uint32_t)_klen, _khash, &value)) {
1608 0 1 if (!hashmap_si_put(self, _kstr, (uint32_t)_klen, _khash, _kutf8, default_value, 0))
1623 2 14 EXTRACT_NEW_ARGS(_max_size, _ttl);
1 15 EXTRACT_NEW_ARGS(_max_size, _ttl);
1625 0 16 if (!map) croak("Failed to create HashMap::SS");
1633 16 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 16 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 16 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1640 80024 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 80024 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 80024 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1641 0 80024 EXTRACT_STR_KEY(key_sv);
1642 0 80024 EXTRACT_STR_VAL(value);
1651 50016 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 50016 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 50016 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1652 0 50016 EXTRACT_STR_KEY(key_sv);
1656 5 50011 if (!hashmap_ss_get(self, _kstr, (uint32_t)_klen, _khash, &val, &val_len, &val_utf8))
1659 1 50010 if (val_utf8) SvUTF8_on(RETVAL);
1666 80003 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 80003 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 80003 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1667 0 80003 EXTRACT_STR_KEY(key_sv);
1675 2 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 2 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 2 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1676 0 2 EXTRACT_STR_KEY(key_sv);
1684 7 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 7 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 7 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1685 0 7 RETVAL = self->size;
1692 0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1693 0 0 RETVAL = self->max_size;
1700 0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1701 0 0 RETVAL = (UV)self->default_ttl;
1708 3 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 3 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 3 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1709 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1710 0 3 EXTEND(SP, self->size);
1712 48 3 for (i = 0; i < self->capacity; i++) {
1713 7 41 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
6 1 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 6 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1716 1 5 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
1717 0 6 mXPUSHs(sv);
1724 1 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 1 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 1 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1725 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1726 0 1 EXTEND(SP, self->size);
1728 16 1 for (i = 0; i < self->capacity; i++) {
1729 2 14 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1730 2 0 if (self->nodes[i].value) {
1733 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(sv);
1734 0 2 mXPUSHs(sv);
1736 0 0 XPUSHs(&PL_sv_undef);
1744 1 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 1 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 1 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1745 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1746 0 1 EXTEND(SP, self->size * 2);
1748 16 1 for (i = 0; i < self->capacity; i++) {
1749 2 14 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1752 0 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
1753 0 2 mXPUSHs(sv);
1754 2 0 if (self->nodes[i].value) {
1757 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(vsv);
1758 0 2 mXPUSHs(vsv);
1760 0 0 XPUSHs(&PL_sv_undef);
1768 4 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 4 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 4 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1769 0 4 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1770 26 1 while (self->iter_pos < self->capacity) {
1772 3 23 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 3 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1773 0 3 EXTEND(SP, 2);
1777 1 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(ksv);
1778 0 3 mXPUSHs(ksv);
1780 3 0 if (self->nodes[i].value) {
1783 1 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(vsv);
1784 0 3 mXPUSHs(vsv);
1786 0 0 XPUSHs(&PL_sv_undef);
1797 0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1803 1 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 1 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 1 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1809 2 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 2 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 2 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1811 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1813 32 2 for (i = 0; i < self->capacity; i++) {
1814 3 29 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 3 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SS_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1821 3 0 : newSV(0);
1822 3 0 if (self->nodes[i].value && vutf8) SvUTF8_on(val);
1 2 if (self->nodes[i].value && vutf8) SvUTF8_on(val);
1823 1 2 (void)hv_store(hv, self->nodes[i].key, kutf8 ? -(I32)klen : (I32)klen, val, 0);
1833 2 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 2 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 2 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1834 0 2 EXTRACT_STR_KEY(key_sv);
1835 0 2 EXTRACT_STR_VAL(value);
1844 2 0 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 2 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
0 2 EXTRACT_MAP(HashMapSS, "Data::HashMap::SS", self_sv);
1845 0 2 EXTRACT_STR_KEY(key_sv);
1847 1 1 if (hashmap_ss_get(self, _kstr, (uint32_t)_klen, _khash, &val, &val_len, &val_utf8)) {
1849 0 1 if (val_utf8) SvUTF8_on(RETVAL);
1851 0 1 EXTRACT_STR_VAL(default_sv);
1852 0 1 if (!hashmap_ss_put(self, _kstr, (uint32_t)_klen, _khash, _kutf8,
1868 1 7 EXTRACT_NEW_ARGS(_max_size, _ttl);
0 8 EXTRACT_NEW_ARGS(_max_size, _ttl);
1870 0 8 if (!map) croak("Failed to create HashMap::I32S");
1878 8 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 8 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 8 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1885 80015 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 80015 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 80015 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1886 0 80015 EXTRACT_STR_VAL(value);
1894 50008 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 50008 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 50008 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1898 3 50005 if (!hashmap_i32s_get(self, key, &val, &val_len, &val_utf8))
1901 1 50004 if (val_utf8) SvUTF8_on(RETVAL);
1908 80004 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 80004 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 80004 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1916 3 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 3 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 3 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1924 6 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 6 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 6 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1925 0 6 RETVAL = self->size;
1932 0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1933 0 0 RETVAL = self->max_size;
1940 0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1941 0 0 RETVAL = (UV)self->default_ttl;
1948 2 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 2 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 2 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1949 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1950 0 2 EXTEND(SP, self->size);
1952 32 2 for (i = 0; i < self->capacity; i++) {
1953 2 30 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
1954 0 2 mXPUSHi(self->nodes[i].key);
1960 1 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 1 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 1 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1961 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1962 0 1 EXTEND(SP, self->size);
1964 16 1 for (i = 0; i < self->capacity; i++) {
1965 2 14 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1966 2 0 if (self->nodes[i].value) {
1969 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(sv);
1970 0 2 mXPUSHs(sv);
1972 0 0 XPUSHs(&PL_sv_undef);
1980 1 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 1 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 1 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
1981 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
1982 0 1 EXTEND(SP, self->size * 2);
1984 16 1 for (i = 0; i < self->capacity; i++) {
1985 2 14 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1986 0 2 mXPUSHi(self->nodes[i].key);
1987 2 0 if (self->nodes[i].value) {
1990 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(sv);
1991 0 2 mXPUSHs(sv);
1993 0 0 XPUSHs(&PL_sv_undef);
2001 3 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 3 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 3 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
2002 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2003 16 1 while (self->iter_pos < self->capacity) {
2005 2 14 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2006 0 2 EXTEND(SP, 2);
2007 0 2 mXPUSHi(self->nodes[i].key);
2008 2 0 if (self->nodes[i].value) {
2011 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(vsv);
2012 0 2 mXPUSHs(vsv);
2014 0 0 XPUSHs(&PL_sv_undef);
2025 0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
2031 1 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 1 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 1 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
2037 1 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 1 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 1 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
2039 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2041 16 1 for (i = 0; i < self->capacity; i++) {
2042 1 15 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2047 1 0 : newSV(0);
2048 1 0 if (self->nodes[i].value && vutf8) SvUTF8_on(val);
0 1 if (self->nodes[i].value && vutf8) SvUTF8_on(val);
2061 0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
2062 0 0 EXTRACT_STR_VAL(value);
2070 0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
0 0 EXTRACT_MAP(HashMapI32S, "Data::HashMap::I32S", self_sv);
2072 0 0 if (hashmap_i32s_get(self, key, &val, &val_len, &val_utf8)) {
2074 0 0 if (val_utf8) SvUTF8_on(RETVAL);
2076 0 0 EXTRACT_STR_VAL(default_sv);
2077 0 0 if (!hashmap_i32s_put(self, key, _vstr, (uint32_t)_vlen, _vutf8, 0))
2092 1 11 EXTRACT_NEW_ARGS(_max_size, _ttl);
0 12 EXTRACT_NEW_ARGS(_max_size, _ttl);
2094 0 12 if (!map) croak("Failed to create HashMap::SI32");
2102 12 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 12 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 12 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2109 80019 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 80019 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 80019 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2110 0 80019 EXTRACT_STR_KEY(key_sv);
2118 50008 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 50008 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 50008 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2119 0 50008 EXTRACT_STR_KEY(key_sv);
2121 2 50006 if (!hashmap_si32_get(self, _kstr, (uint32_t)_klen, _khash, &value))
2130 80003 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 80003 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 80003 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2131 0 80003 EXTRACT_STR_KEY(key_sv);
2139 2 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 2 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 2 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2140 0 2 EXTRACT_STR_KEY(key_sv);
2148 10 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 10 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 10 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2149 0 10 EXTRACT_STR_KEY(key_sv);
2151 1 9 if (!hashmap_si32_increment(self, _kstr, (uint32_t)_klen, _khash, _kutf8, &val))
2160 3 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 3 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 3 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2161 0 3 EXTRACT_STR_KEY(key_sv);
2163 1 2 if (!hashmap_si32_decrement(self, _kstr, (uint32_t)_klen, _khash, _kutf8, &val))
2172 6 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 6 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 6 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2173 0 6 EXTRACT_STR_KEY(key_sv);
2175 2 4 if (!hashmap_si32_increment_by(self, _kstr, (uint32_t)_klen, _khash, _kutf8, delta, &val))
2184 5 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 5 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 5 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2185 0 5 RETVAL = self->size;
2192 0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2193 0 0 RETVAL = self->max_size;
2200 0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2201 0 0 RETVAL = (UV)self->default_ttl;
2208 3 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 3 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 3 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2209 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2210 0 3 EXTEND(SP, self->size);
2212 48 3 for (i = 0; i < self->capacity; i++) {
2213 8 40 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
7 1 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 7 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2216 1 6 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
2217 0 7 mXPUSHs(sv);
2224 1 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 1 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 1 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2225 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2226 0 1 EXTEND(SP, self->size);
2228 16 1 for (i = 0; i < self->capacity; i++) {
2229 2 14 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2230 0 2 mXPUSHi(self->nodes[i].value);
2236 2 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 2 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 2 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2237 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2238 0 2 EXTEND(SP, self->size * 2);
2240 32 2 for (i = 0; i < self->capacity; i++) {
2241 8 24 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
7 1 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 7 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2244 1 6 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
2245 0 7 mXPUSHs(sv);
2246 0 7 mXPUSHi(self->nodes[i].value);
2253 3 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 3 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 3 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2254 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2255 16 1 while (self->iter_pos < self->capacity) {
2257 2 14 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2258 0 2 EXTEND(SP, 2);
2262 0 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(ksv);
2263 0 2 mXPUSHs(ksv);
2265 0 2 mXPUSHi(self->nodes[i].value);
2275 0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2281 0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2287 1 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 1 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 1 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2289 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2291 16 1 for (i = 0; i < self->capacity; i++) {
2292 1 15 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI32_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2296 0 1 (void)hv_store(hv, self->nodes[i].key, kutf8 ? -(I32)klen : (I32)klen, val, 0);
2306 0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2307 0 0 EXTRACT_STR_KEY(key_sv);
2315 1 0 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 1 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
0 1 EXTRACT_MAP(HashMapSI32, "Data::HashMap::SI32", self_sv);
2316 0 1 EXTRACT_STR_KEY(key_sv);
2318 0 1 if (hashmap_si32_get(self, _kstr, (uint32_t)_klen, _khash, &value)) {
2321 0 1 if (!hashmap_si32_put(self, _kstr, (uint32_t)_klen, _khash, _kutf8, default_value, 0))
2336 2 13 EXTRACT_NEW_ARGS(_max_size, _ttl);
1 14 EXTRACT_NEW_ARGS(_max_size, _ttl);
2338 0 15 if (!map) croak("Failed to create HashMap::I16");
2346 15 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 15 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 15 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2353 81025 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 81025 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 81025 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2361 30012 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 30012 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 30012 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2363 6 30006 if (!hashmap_i16_get(self, key, &value)) XSRETURN_UNDEF;
2371 80005 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 80005 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 80005 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2379 4 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 4 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 4 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2387 8 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2389 2 6 if (!hashmap_i16_increment(self, key, &val))
2398 6 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 6 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 6 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2400 2 4 if (!hashmap_i16_decrement(self, key, &val))
2409 8 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2411 2 6 if (!hashmap_i16_increment_by(self, key, delta, &val))
2420 8 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 8 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2421 0 8 RETVAL = self->size;
2428 0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2429 0 0 RETVAL = self->max_size;
2436 0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2437 0 0 RETVAL = (UV)self->default_ttl;
2444 3 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2445 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2446 0 3 EXTEND(SP, self->size);
2448 48 3 for (i = 0; i < self->capacity; i++) {
2449 4 44 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
4 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 4 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2450 0 4 mXPUSHi(self->nodes[i].key);
2456 2 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 2 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 2 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2457 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2458 0 2 EXTEND(SP, self->size);
2460 32 2 for (i = 0; i < self->capacity; i++) {
2461 4 28 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
4 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 4 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2462 0 4 mXPUSHi(self->nodes[i].value);
2468 1 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2469 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2470 0 1 EXTEND(SP, self->size * 2);
2472 16 1 for (i = 0; i < self->capacity; i++) {
2473 2 14 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2474 0 2 mXPUSHi(self->nodes[i].key);
2475 0 2 mXPUSHi(self->nodes[i].value);
2482 3 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2483 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2484 16 1 while (self->iter_pos < self->capacity) {
2486 2 14 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2487 0 2 EXTEND(SP, 2);
2488 0 2 mXPUSHi(self->nodes[i].key);
2489 0 2 mXPUSHi(self->nodes[i].value);
2499 0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2505 1 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2511 1 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 1 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2513 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2515 16 1 for (i = 0; i < self->capacity; i++) {
2516 1 15 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2530 0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2538 3 0 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
0 3 EXTRACT_MAP(HashMapI16, "Data::HashMap::I16", self_sv);
2540 1 2 if (hashmap_i16_get(self, key, &value)) {
2543 1 1 if (!hashmap_i16_put(self, key, default_value, 0))
2558 1 7 EXTRACT_NEW_ARGS(_max_size, _ttl);
0 8 EXTRACT_NEW_ARGS(_max_size, _ttl);
2560 0 8 if (!map) croak("Failed to create HashMap::I16S");
2568 8 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 8 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 8 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2575 60014 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 60014 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 60014 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2576 0 60014 EXTRACT_STR_VAL(value);
2584 30007 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 30007 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 30007 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2588 3 30004 if (!hashmap_i16s_get(self, key, &val, &val_len, &val_utf8))
2591 1 30003 if (val_utf8) SvUTF8_on(RETVAL);
2598 60004 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 60004 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 60004 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2606 4 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 4 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 4 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2614 8 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 8 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 8 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2615 0 8 RETVAL = self->size;
2622 0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2623 0 0 RETVAL = self->max_size;
2630 0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2631 0 0 RETVAL = (UV)self->default_ttl;
2638 2 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 2 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 2 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2639 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2640 0 2 EXTEND(SP, self->size);
2642 32 2 for (i = 0; i < self->capacity; i++) {
2643 2 30 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2644 0 2 mXPUSHi(self->nodes[i].key);
2650 1 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 1 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 1 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2651 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2652 0 1 EXTEND(SP, self->size);
2654 16 1 for (i = 0; i < self->capacity; i++) {
2655 2 14 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2656 2 0 if (self->nodes[i].value) {
2659 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(sv);
2660 0 2 mXPUSHs(sv);
2662 0 0 XPUSHs(&PL_sv_undef);
2670 1 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 1 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 1 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2671 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2672 0 1 EXTEND(SP, self->size * 2);
2674 16 1 for (i = 0; i < self->capacity; i++) {
2675 2 14 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2676 0 2 mXPUSHi(self->nodes[i].key);
2677 2 0 if (self->nodes[i].value) {
2680 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(sv);
2681 0 2 mXPUSHs(sv);
2683 0 0 XPUSHs(&PL_sv_undef);
2691 3 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 3 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 3 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2692 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2693 16 1 while (self->iter_pos < self->capacity) {
2695 2 14 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2696 0 2 EXTEND(SP, 2);
2697 0 2 mXPUSHi(self->nodes[i].key);
2698 2 0 if (self->nodes[i].value) {
2701 0 2 if (HM_UNPACK_UTF8(self->nodes[i].val_len)) SvUTF8_on(vsv);
2702 0 2 mXPUSHs(vsv);
2704 0 0 XPUSHs(&PL_sv_undef);
2715 0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2721 1 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 1 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 1 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2727 0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2729 0 0 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2731 0 0 for (i = 0; i < self->capacity; i++) {
2732 0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16S_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2737 0 0 : newSV(0);
2738 0 0 if (self->nodes[i].value && vutf8) SvUTF8_on(val);
0 0 if (self->nodes[i].value && vutf8) SvUTF8_on(val);
2751 0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2752 0 0 EXTRACT_STR_VAL(value);
2760 1 0 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 1 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
0 1 EXTRACT_MAP(HashMapI16S, "Data::HashMap::I16S", self_sv);
2762 0 1 if (hashmap_i16s_get(self, key, &val, &val_len, &val_utf8)) {
2764 0 0 if (val_utf8) SvUTF8_on(RETVAL);
2766 0 1 EXTRACT_STR_VAL(default_sv);
2767 0 1 if (!hashmap_i16s_put(self, key, _vstr, (uint32_t)_vlen, _vutf8, 0))
2782 2 9 EXTRACT_NEW_ARGS(_max_size, _ttl);
1 10 EXTRACT_NEW_ARGS(_max_size, _ttl);
2784 0 11 if (!map) croak("Failed to create HashMap::SI16");
2792 11 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 11 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 11 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2799 80019 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 80019 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 80019 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2800 0 80019 EXTRACT_STR_KEY(key_sv);
2808 50008 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 50008 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 50008 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2809 0 50008 EXTRACT_STR_KEY(key_sv);
2811 3 50005 if (!hashmap_si16_get(self, _kstr, (uint32_t)_klen, _khash, &value))
2820 80003 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 80003 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 80003 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2821 0 80003 EXTRACT_STR_KEY(key_sv);
2829 4 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 4 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 4 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2830 0 4 EXTRACT_STR_KEY(key_sv);
2838 8 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 8 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 8 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2839 0 8 EXTRACT_STR_KEY(key_sv);
2841 1 7 if (!hashmap_si16_increment(self, _kstr, (uint32_t)_klen, _khash, _kutf8, &val))
2850 5 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 5 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 5 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2851 0 5 EXTRACT_STR_KEY(key_sv);
2853 1 4 if (!hashmap_si16_decrement(self, _kstr, (uint32_t)_klen, _khash, _kutf8, &val))
2862 6 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 6 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 6 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2863 0 6 EXTRACT_STR_KEY(key_sv);
2865 2 4 if (!hashmap_si16_increment_by(self, _kstr, (uint32_t)_klen, _khash, _kutf8, delta, &val))
2874 6 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 6 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 6 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2875 0 6 RETVAL = self->size;
2882 0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2883 0 0 RETVAL = self->max_size;
2890 0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2891 0 0 RETVAL = (UV)self->default_ttl;
2898 2 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 2 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 2 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2899 0 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2900 0 2 EXTEND(SP, self->size);
2902 32 2 for (i = 0; i < self->capacity; i++) {
2903 2 30 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2906 0 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
2907 0 2 mXPUSHs(sv);
2914 1 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 1 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 1 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2915 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2916 0 1 EXTEND(SP, self->size);
2918 16 1 for (i = 0; i < self->capacity; i++) {
2919 2 14 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2920 0 2 mXPUSHi(self->nodes[i].value);
2926 1 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 1 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 1 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2927 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2928 0 1 EXTEND(SP, self->size * 2);
2930 16 1 for (i = 0; i < self->capacity; i++) {
2931 2 14 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2934 0 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
2935 0 2 mXPUSHs(sv);
2936 0 2 mXPUSHi(self->nodes[i].value);
2943 3 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 3 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 3 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2944 0 3 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2945 16 1 while (self->iter_pos < self->capacity) {
2947 2 14 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2948 0 2 EXTEND(SP, 2);
2952 0 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(ksv);
2953 0 2 mXPUSHs(ksv);
2955 0 2 mXPUSHi(self->nodes[i].value);
2965 0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2971 0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2977 1 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 1 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 1 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2979 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
2981 16 1 for (i = 0; i < self->capacity; i++) {
2982 1 15 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SI16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2986 0 1 (void)hv_store(hv, self->nodes[i].key, kutf8 ? -(I32)klen : (I32)klen, val, 0);
2996 0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
2997 0 0 EXTRACT_STR_KEY(key_sv);
3005 0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
0 0 EXTRACT_MAP(HashMapSI16, "Data::HashMap::SI16", self_sv);
3006 0 0 EXTRACT_STR_KEY(key_sv);
3008 0 0 if (hashmap_si16_get(self, _kstr, (uint32_t)_klen, _khash, &value)) {
3011 0 0 if (!hashmap_si16_put(self, _kstr, (uint32_t)_klen, _khash, _kutf8, default_value, 0))
3026 2 8 EXTRACT_NEW_ARGS(_max_size, _ttl);
1 9 EXTRACT_NEW_ARGS(_max_size, _ttl);
3028 0 10 if (!map) croak("Failed to create HashMap::I32A");
3037 10 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 10 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 10 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3044 23 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 23 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 23 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3047 2 21 if (!RETVAL) SvREFCNT_dec(value);
3054 12 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 12 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 12 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3056 3 9 if (!hashmap_i32a_get(self, key, &val)) XSRETURN_UNDEF;
3064 3 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 3 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 3 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3072 3 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 3 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 3 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3080 6 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 6 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 6 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3081 0 6 RETVAL = self->size;
3088 0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3089 0 0 RETVAL = self->max_size;
3096 0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3097 0 0 RETVAL = (UV)self->default_ttl;
3104 1 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3105 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3106 0 1 EXTEND(SP, self->size);
3108 16 1 for (i = 0; i < self->capacity; i++) {
3109 2 14 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
3110 0 2 mXPUSHi(self->nodes[i].key);
3116 1 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3117 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3118 0 1 EXTEND(SP, self->size);
3120 16 1 for (i = 0; i < self->capacity; i++) {
3121 2 14 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3122 2 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3123 0 2 mXPUSHs(sv);
3130 1 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3131 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3132 0 1 EXTEND(SP, self->size * 2);
3134 16 1 for (i = 0; i < self->capacity; i++) {
3135 2 14 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3136 0 2 mXPUSHi(self->nodes[i].key);
3137 2 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3138 0 2 mXPUSHs(sv);
3145 6 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 6 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 6 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3146 0 6 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3147 32 2 while (self->iter_pos < self->capacity) {
3149 4 28 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
4 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 4 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3150 0 4 EXTEND(SP, 2);
3151 0 4 mXPUSHi(self->nodes[i].key);
3152 4 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3153 0 4 mXPUSHs(sv);
3163 0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3169 1 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3175 1 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 1 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3177 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3179 16 1 for (i = 0; i < self->capacity; i++) {
3180 1 15 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I32A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3181 1 0 SV* val = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3194 0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3197 0 0 if (!RETVAL) SvREFCNT_dec(value);
3204 0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
0 0 EXTRACT_MAP(HashMapI32A, "Data::HashMap::I32A", self_sv);
3206 0 0 if (hashmap_i32a_get(self, key, &val)) {
3210 0 0 if (!hashmap_i32a_put(self, key, (void*)default_value, 0)) {
3227 2 8 EXTRACT_NEW_ARGS(_max_size, _ttl);
1 9 EXTRACT_NEW_ARGS(_max_size, _ttl);
3229 0 10 if (!map) croak("Failed to create HashMap::I16A");
3238 10 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 10 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 10 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3245 23 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 23 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 23 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3248 2 21 if (!RETVAL) SvREFCNT_dec(value);
3255 12 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 12 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 12 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3257 3 9 if (!hashmap_i16a_get(self, key, &val)) XSRETURN_UNDEF;
3265 3 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 3 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 3 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3273 3 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 3 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 3 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3281 6 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 6 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 6 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3282 0 6 RETVAL = self->size;
3289 0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3290 0 0 RETVAL = self->max_size;
3297 0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3298 0 0 RETVAL = (UV)self->default_ttl;
3305 1 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 1 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 1 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3306 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3307 0 1 EXTEND(SP, self->size);
3309 16 1 for (i = 0; i < self->capacity; i++) {
3310 2 14 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
2 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 2 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
3311 0 2 mXPUSHi(self->nodes[i].key);
3317 1 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 1 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 1 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3318 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3319 0 1 EXTEND(SP, self->size);
3321 16 1 for (i = 0; i < self->capacity; i++) {
3322 2 14 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3323 2 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3324 0 2 mXPUSHs(sv);
3331 1 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 1 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 1 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3332 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3333 0 1 EXTEND(SP, self->size * 2);
3335 16 1 for (i = 0; i < self->capacity; i++) {
3336 2 14 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3337 0 2 mXPUSHi(self->nodes[i].key);
3338 2 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3339 0 2 mXPUSHs(sv);
3346 6 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 6 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 6 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3347 0 6 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3348 32 2 while (self->iter_pos < self->capacity) {
3350 4 28 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
4 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 4 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3351 0 4 EXTEND(SP, 2);
3352 0 4 mXPUSHi(self->nodes[i].key);
3353 4 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3354 0 4 mXPUSHs(sv);
3364 0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3370 1 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 1 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 1 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3376 0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3378 0 0 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3380 0 0 for (i = 0; i < self->capacity; i++) {
3381 0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (I16A_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3382 0 0 SV* val = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3395 0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3398 0 0 if (!RETVAL) SvREFCNT_dec(value);
3405 0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
0 0 EXTRACT_MAP(HashMapI16A, "Data::HashMap::I16A", self_sv);
3407 0 0 if (hashmap_i16a_get(self, key, &val)) {
3411 0 0 if (!hashmap_i16a_put(self, key, (void*)default_value, 0)) {
3428 2 13 EXTRACT_NEW_ARGS(_max_size, _ttl);
1 14 EXTRACT_NEW_ARGS(_max_size, _ttl);
3430 0 15 if (!map) croak("Failed to create HashMap::IA");
3439 15 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 15 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 15 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3446 26 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 26 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 26 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3449 2 24 if (!RETVAL) SvREFCNT_dec(value);
3456 16 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 16 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 16 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3458 5 11 if (!hashmap_ia_get(self, key, &val)) XSRETURN_UNDEF;
3466 3 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 3 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 3 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3474 4 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 4 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 4 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3482 6 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 6 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 6 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3483 0 6 RETVAL = self->size;
3490 0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3491 0 0 RETVAL = self->max_size;
3498 0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3499 0 0 RETVAL = (UV)self->default_ttl;
3506 3 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 3 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 3 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3507 1 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3508 0 3 EXTEND(SP, self->size);
3510 48 3 for (i = 0; i < self->capacity; i++) {
3511 4 44 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
3 1 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
1 2 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
1 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
0 1 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now))
3512 0 2 mXPUSHi(self->nodes[i].key);
3518 1 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3519 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3520 0 1 EXTEND(SP, self->size);
3522 16 1 for (i = 0; i < self->capacity; i++) {
3523 2 14 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3524 2 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3525 0 2 mXPUSHs(sv);
3532 1 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3533 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3534 0 1 EXTEND(SP, self->size * 2);
3536 16 1 for (i = 0; i < self->capacity; i++) {
3537 2 14 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3538 0 2 mXPUSHi(self->nodes[i].key);
3539 2 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3540 0 2 mXPUSHs(sv);
3547 6 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 6 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 6 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3548 0 6 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3549 32 2 while (self->iter_pos < self->capacity) {
3551 4 28 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
4 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 4 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3552 0 4 EXTEND(SP, 2);
3553 0 4 mXPUSHi(self->nodes[i].key);
3554 4 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3555 0 4 mXPUSHs(sv);
3565 0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3571 1 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3577 1 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3579 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3581 16 1 for (i = 0; i < self->capacity; i++) {
3582 1 15 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (IA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3583 1 0 SV* val = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3596 1 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 1 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3599 0 1 if (!RETVAL) SvREFCNT_dec(value);
3606 2 0 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 2 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
0 2 EXTRACT_MAP(HashMapIA, "Data::HashMap::IA", self_sv);
3608 1 1 if (hashmap_ia_get(self, key, &val)) {
3612 0 1 if (!hashmap_ia_put(self, key, (void*)default_value, 0)) {
3629 2 15 EXTRACT_NEW_ARGS(_max_size, _ttl);
1 16 EXTRACT_NEW_ARGS(_max_size, _ttl);
3631 0 17 if (!map) croak("Failed to create HashMap::SA");
3640 17 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 17 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 17 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3647 27 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 27 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 27 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3648 0 27 EXTRACT_STR_KEY(key_sv);
3651 0 27 if (!RETVAL) SvREFCNT_dec(value);
3658 18 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 18 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 18 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3659 0 18 EXTRACT_STR_KEY(key_sv);
3661 4 14 if (!hashmap_sa_get(self, _kstr, (uint32_t)_klen, _khash, &val))
3670 3 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 3 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 3 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3671 0 3 EXTRACT_STR_KEY(key_sv);
3679 5 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 5 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 5 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3680 0 5 EXTRACT_STR_KEY(key_sv);
3688 6 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 6 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 6 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3689 0 6 RETVAL = self->size;
3696 0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3697 0 0 RETVAL = self->max_size;
3704 0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3705 0 0 RETVAL = (UV)self->default_ttl;
3712 3 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 3 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 3 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3713 1 2 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3714 0 3 EXTEND(SP, self->size);
3716 48 3 for (i = 0; i < self->capacity; i++) {
3717 4 44 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3 1 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 2 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3720 0 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(sv);
3721 0 2 mXPUSHs(sv);
3728 1 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3729 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3730 0 1 EXTEND(SP, self->size);
3732 16 1 for (i = 0; i < self->capacity; i++) {
3733 2 14 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3734 2 0 SV* sv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3735 0 2 mXPUSHs(sv);
3742 1 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3743 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3744 0 1 EXTEND(SP, self->size * 2);
3746 16 1 for (i = 0; i < self->capacity; i++) {
3747 2 14 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
2 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 2 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3750 0 2 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(ksv);
3751 0 2 mXPUSHs(ksv);
3752 2 0 SV* vsv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3753 0 2 mXPUSHs(vsv);
3760 6 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 6 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 6 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3761 0 6 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3762 32 2 while (self->iter_pos < self->capacity) {
3764 4 28 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
4 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 4 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3765 0 4 EXTEND(SP, 2);
3769 0 4 if (HM_UNPACK_UTF8(self->nodes[i].key_len)) SvUTF8_on(ksv);
3770 0 4 mXPUSHs(ksv);
3772 4 0 SV* vsv = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3773 0 4 mXPUSHs(vsv);
3783 0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3789 1 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3795 1 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3797 0 1 uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
3799 16 1 for (i = 0; i < self->capacity; i++) {
3800 1 15 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
1 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 1 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
0 0 if (SA_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
3803 1 0 SV* val = self->nodes[i].value ? SvREFCNT_inc((SV*)self->nodes[i].value) : &PL_sv_undef;
3804 0 1 (void)hv_store(hv, self->nodes[i].key, kutf8 ? -(I32)klen : (I32)klen, val, 0);
3814 1 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 1 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3815 0 1 EXTRACT_STR_KEY(key_sv);
3818 0 1 if (!RETVAL) SvREFCNT_dec(value);
3825 2 0 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 2 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
0 2 EXTRACT_MAP(HashMapSA, "Data::HashMap::SA", self_sv);
3826 0 2 EXTRACT_STR_KEY(key_sv);
3828 1 1 if (hashmap_sa_get(self, _kstr, (uint32_t)_klen, _khash, &val)) {
3832 0 1 if (!hashmap_sa_put(self, _kstr, (uint32_t)_klen, _khash, _kutf8, (void*)default_value, 0)) {