Skip to content

Commit 8d58b27

Browse files
committed
Remove type name from structseq descriptor
1 parent e453f45 commit 8d58b27

File tree

4 files changed

+13
-28
lines changed

4 files changed

+13
-28
lines changed

graalpython/com.oracle.graal.python.cext/src/structseq.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ count_members(PyStructSequence_Desc *desc, Py_ssize_t *n_unnamed_members) {
7676
return i;
7777
}
7878

79-
typedef int (*structseq_init_fun_t)(void *, void *, void *, void *, int);
79+
typedef int (*structseq_init_fun_t)(void *, void *, void *, int);
8080
UPCALL_TYPED_ID(PyStructSequence_InitType2, structseq_init_fun_t);
8181
int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc) {
8282
Py_ssize_t n_members, n_unnamed_members, n_named_members;
@@ -118,7 +118,6 @@ int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc)
118118
// this initializes the type dict (adds attributes)
119119
return _jls_PyStructSequence_InitType2(
120120
native_type_to_java(type),
121-
polyglot_from_string(desc->name, SRC_CS),
122121
/* TODO(fa): use polyglot_from_VoidPtr_array once this is visible */
123122
polyglot_from_PyObjectPtr_array((PyObjectPtr *) field_names, (uint64_t) n_members),
124123
polyglot_from_PyObjectPtr_array((PyObjectPtr *) field_docs, (uint64_t) n_members),

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/PythonCextBuiltins.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@
187187
import com.oracle.graal.python.builtins.objects.traceback.PTraceback;
188188
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
189189
import com.oracle.graal.python.builtins.objects.tuple.StructSequence;
190-
import com.oracle.graal.python.builtins.objects.tuple.StructSequence.StructSequenceDescriptor;
190+
import com.oracle.graal.python.builtins.objects.tuple.StructSequence.Descriptor;
191191
import com.oracle.graal.python.builtins.objects.type.PythonAbstractClass;
192192
import com.oracle.graal.python.builtins.objects.type.PythonBuiltinClass;
193193
import com.oracle.graal.python.builtins.objects.type.PythonClass;
@@ -4032,20 +4032,20 @@ public void call(@SuppressWarnings("unused") PythonContext context) {
40324032
}
40334033

40344034
// directly called without landing function
4035-
@Builtin(name = "PyStructSequence_InitType2", minNumOfPositionalArgs = 5)
4035+
@Builtin(name = "PyStructSequence_InitType2", minNumOfPositionalArgs = 4)
40364036
@GenerateNodeFactory
40374037
abstract static class PyStructSequenceInitType2 extends NativeBuiltin {
40384038

40394039
@Specialization(limit = "1")
4040-
static int doGeneric(Object klass, String typeName, Object fieldNamesObj, Object fieldDocsObj, int nInSequence,
4040+
static int doGeneric(Object klass, Object fieldNamesObj, Object fieldDocsObj, int nInSequence,
40414041
@CachedLanguage PythonLanguage language,
40424042
@Cached AsPythonObjectNode asPythonObjectNode,
40434043
@CachedLibrary("fieldNamesObj") InteropLibrary lib,
40444044
@Cached(parameters = "true") WriteAttributeToObjectNode clearNewNode) {
4045-
return initializeStructType(asPythonObjectNode.execute(klass), typeName, null, fieldNamesObj, fieldDocsObj, nInSequence, language, lib, clearNewNode);
4045+
return initializeStructType(asPythonObjectNode.execute(klass), fieldNamesObj, fieldDocsObj, nInSequence, language, lib, clearNewNode);
40464046
}
40474047

4048-
static int initializeStructType(Object klass, String typeName, String typeDoc, Object fieldNamesObj, Object fieldDocsObj, int nInSequence,
4048+
static int initializeStructType(Object klass, Object fieldNamesObj, Object fieldDocsObj, int nInSequence,
40494049
PythonLanguage language,
40504050
InteropLibrary lib,
40514051
WriteAttributeToObjectNode clearNewNode) {
@@ -4065,7 +4065,7 @@ static int initializeStructType(Object klass, String typeName, String typeDoc, O
40654065
fieldDocs[i] = cast(lib.readArrayElement(fieldDocsObj, i));
40664066
}
40674067
clearNewNode.execute(klass, __NEW__, PNone.NO_VALUE);
4068-
StructSequenceDescriptor d = new StructSequenceDescriptor(typeName, typeDoc, nInSequence, fieldNames, fieldDocs);
4068+
Descriptor d = new Descriptor(null, nInSequence, fieldNames, fieldDocs);
40694069
StructSequence.initType(language, klass, d);
40704070
return 0;
40714071
} catch (UnsupportedMessageException | InvalidArrayIndexException e) {
@@ -4103,7 +4103,7 @@ Object doGeneric(VirtualFrame frame, String typeName, String typeDoc, Object fie
41034103
PTuple bases = factory().createTuple(new Object[]{PythonBuiltinClassType.PTuple});
41044104
PDict namespace = factory().createDict(new PKeyword[]{new PKeyword(SpecialAttributeNames.__DOC__, typeDoc)});
41054105
Object cls = callTypeNewNode.execute(typeBuiltin, typeName, bases, namespace);
4106-
PyStructSequenceInitType2.initializeStructType(cls, typeName, null, fieldNamesObj, fieldDocsObj, nInSequence, language, lib, clearNewNode);
4106+
PyStructSequenceInitType2.initializeStructType(cls, fieldNamesObj, fieldDocsObj, nInSequence, language, lib, clearNewNode);
41074107
return toNewRefNode.execute(cls);
41084108
} catch (PException e) {
41094109
transformToNative(frame, e);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/tuple/StructSequence.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,11 @@ public class StructSequence {
122122
/** The number of unnamed fields. */
123123
public static final String N_UNNAMED_FIELDS = "n_unnamed_fields";
124124

125-
abstract static class Descriptor {
125+
/**
126+
* The equivalent of {@code PyStructSequence_Desc} except of the {@code name}. We don't need the
127+
* type's name in the descriptor and this will improve code sharing.
128+
*/
129+
public static class Descriptor {
126130
public final String docString;
127131
public final int inSequence;
128132
public final String[] fieldNames;
@@ -223,18 +227,6 @@ public int hashCode() {
223227
}
224228
}
225229

226-
/**
227-
* The equivalent of {@code PyStructSequence_Desc}.
228-
*/
229-
public static final class StructSequenceDescriptor extends Descriptor {
230-
public final String name;
231-
232-
public StructSequenceDescriptor(String name, String docString, int inSequence, String[] fieldNames, String[] fieldDocStrings) {
233-
super(docString, inSequence, fieldNames, fieldDocStrings, true);
234-
this.name = name;
235-
}
236-
}
237-
238230
@TruffleBoundary
239231
public static void initType(Python3Core core, BuiltinTypeDescriptor desc) {
240232
initType(core.getLanguage(), core.lookupType(desc.type), desc);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/object/PythonObjectFactory.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@
143143
import com.oracle.graal.python.builtins.objects.traceback.PTraceback;
144144
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
145145
import com.oracle.graal.python.builtins.objects.tuple.StructSequence.BuiltinTypeDescriptor;
146-
import com.oracle.graal.python.builtins.objects.tuple.StructSequence.StructSequenceDescriptor;
147146
import com.oracle.graal.python.builtins.objects.type.PythonAbstractClass;
148147
import com.oracle.graal.python.builtins.objects.type.PythonClass;
149148
import com.oracle.graal.python.builtins.objects.type.SpecialMethodSlot;
@@ -398,11 +397,6 @@ public final PTuple createStructSeq(BuiltinTypeDescriptor desc, Object... values
398397
return createTuple(desc.type, new ObjectSequenceStorage(values, desc.inSequence));
399398
}
400399

401-
public final PTuple createStructSeq(Object cls, StructSequenceDescriptor desc, Object... values) {
402-
assert desc.inSequence <= values.length && values.length <= desc.fieldNames.length;
403-
return createTuple(cls, new ObjectSequenceStorage(values, desc.inSequence));
404-
}
405-
406400
public final PComplex createComplex(Object cls, double real, double imag) {
407401
return trace(new PComplex(cls, getShape(cls), real, imag));
408402
}

0 commit comments

Comments
 (0)