Update to Inform v6.41
[inform.git] / src / objects.c
index 34e0b8673d5807ef701b5d5c180afc85316002b3..f122c3ec80004f9d50249524ba650babfc58c37e 100644 (file)
@@ -6,7 +6,7 @@
 /*                    checks syntax and translates such directives into      */
 /*                    specifications for the object-maker.                   */
 /*                                                                           */
-/*   Part of Inform 6.40                                                     */
+/*   Part of Inform 6.41                                                     */
 /*   copyright (c) Graham Nelson 1993 - 2022                                 */
 /*                                                                           */
 /* Inform is free software: you can redistribute it and/or modify            */
@@ -629,9 +629,7 @@ so many values that the list has overflowed the maximum 32 entries");
                                 {   already_present = TRUE; break;
                                 }
                             if (already_present == FALSE)
-                            {   if (module_switch)
-                                    backpatch_zmachine(IDENT_MV,
-                                        INDIVIDUAL_PROP_ZA, i_m);
+                            {
                                 ensure_memory_list_available(&individuals_table_memlist, i_m+3+individuals_table[z+2]);
                                 individuals_table[i_m++] = individuals_table[z];
                                 individuals_table[i_m++] = individuals_table[z+1];
@@ -692,8 +690,7 @@ so many values that the list has overflowed the maximum 32 entries");
 
                     z = class_block_offset;
                     while ((individuals_table[z]!=0)||(individuals_table[z+1]!=0))
-                    {   if (module_switch)
-                        backpatch_zmachine(IDENT_MV, INDIVIDUAL_PROP_ZA, i_m);
+                    {
                         ensure_memory_list_available(&individuals_table_memlist, i_m+3+individuals_table[z+2]);
                         individuals_table[i_m++] = individuals_table[z];
                         individuals_table[i_m++] = individuals_table[z+1];
@@ -1217,8 +1214,6 @@ static void properties_segment_z(int this_segment)
             if (this_segment == PRIVATE_SEGMENT)
                 individuals_table[i_m] |= 0x80;
             individuals_table[i_m+1] = this_identifier_number%256;
-            if (module_switch)
-                backpatch_zmachine(IDENT_MV, INDIVIDUAL_PROP_ZA, i_m);
             individuals_table[i_m+2] = 0;
         }
         else
@@ -1925,11 +1920,10 @@ inconvenience, please contact the maintainers.");
     }
 
     /*  "Class" (object 1) has no parent, whereas all other classes are
-        the children of "Class".  Since "Class" is not present in a module,
-        a special value is used which is corrected to 1 by the linker.       */
+        the children of "Class".                                             */
 
     if (metaclass_flag) parent_of_this_obj = 0;
-    else parent_of_this_obj = (module_switch)?MAXINTWORD:1;
+    else parent_of_this_obj = 1;
 
     class_info[no_classes].object_number = class_number;
     class_info[no_classes].symbol = current_classname_symbol;
@@ -2203,7 +2197,7 @@ extern void make_object(int nearby_flag,
             {   int j = i, k = 0;
 
                 /*  Metaclass or class objects cannot be '->' parents:  */
-                if ((!module_switch) && (i<4))
+                if (i<4)
                     continue;
 
                 if (!glulx_mode) {