Interned strings and ASCII literals are always in the native format
This commit is contained in:
15
ASTree.cpp
15
ASTree.cpp
@@ -2656,16 +2656,17 @@ void print_src(PycRef<ASTNode> node, PycModule* mod)
|
||||
dest.cast<ASTName>()->name()->isEqual("__doc__")) {
|
||||
if (src->type() == ASTNode::NODE_OBJECT) {
|
||||
PycRef<PycObject> obj = src.cast<ASTObject>()->object();
|
||||
if (obj->type() == PycObject::TYPE_STRING ||
|
||||
obj->type() == PycObject::TYPE_INTERNED ||
|
||||
obj->type() == PycObject::TYPE_ASCII ||
|
||||
obj->type() == PycObject::TYPE_ASCII_INTERNED ||
|
||||
obj->type() == PycObject::TYPE_SHORT_ASCII ||
|
||||
obj->type() == PycObject::TYPE_SHORT_ASCII_INTERNED ||
|
||||
obj->type() == PycObject::TYPE_STRINGREF)
|
||||
if (obj->type() == PycObject::TYPE_STRING)
|
||||
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 'b' : 0, true);
|
||||
else if (obj->type() == PycObject::TYPE_UNICODE)
|
||||
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 0 : 'u', true);
|
||||
else if (obj->type() == PycObject::TYPE_INTERNED ||
|
||||
obj->type() == PycObject::TYPE_STRINGREF ||
|
||||
obj->type() == PycObject::TYPE_ASCII ||
|
||||
obj->type() == PycObject::TYPE_ASCII_INTERNED ||
|
||||
obj->type() == PycObject::TYPE_SHORT_ASCII ||
|
||||
obj->type() == PycObject::TYPE_SHORT_ASCII_INTERNED)
|
||||
OutputString(obj.cast<PycString>(), 0, true);
|
||||
} else {
|
||||
print_src(dest, mod);
|
||||
fprintf(pyc_output, " = ");
|
||||
|
10
bytecode.cpp
10
bytecode.cpp
@@ -158,16 +158,18 @@ void print_const(PycRef<PycObject> obj, PycModule* mod)
|
||||
{
|
||||
switch (obj->type()) {
|
||||
case PycObject::TYPE_STRING:
|
||||
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 'b' : 0);
|
||||
break;
|
||||
case PycObject::TYPE_UNICODE:
|
||||
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 0 : 'u');
|
||||
break;
|
||||
case PycObject::TYPE_STRINGREF:
|
||||
case PycObject::TYPE_INTERNED:
|
||||
case PycObject::TYPE_ASCII:
|
||||
case PycObject::TYPE_ASCII_INTERNED:
|
||||
case PycObject::TYPE_SHORT_ASCII:
|
||||
case PycObject::TYPE_SHORT_ASCII_INTERNED:
|
||||
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 'b' : 0);
|
||||
break;
|
||||
case PycObject::TYPE_UNICODE:
|
||||
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 0 : 'u');
|
||||
OutputString(obj.cast<PycString>(), 0);
|
||||
break;
|
||||
case PycObject::TYPE_TUPLE:
|
||||
case PycObject::TYPE_SMALL_TUPLE:
|
||||
|
16
pycdas.cpp
16
pycdas.cpp
@@ -113,12 +113,6 @@ void output_object(PycRef<PycObject> obj, PycModule* mod, int indent)
|
||||
}
|
||||
break;
|
||||
case PycObject::TYPE_STRING:
|
||||
case PycObject::TYPE_STRINGREF:
|
||||
case PycObject::TYPE_INTERNED:
|
||||
case PycObject::TYPE_ASCII:
|
||||
case PycObject::TYPE_ASCII_INTERNED:
|
||||
case PycObject::TYPE_SHORT_ASCII:
|
||||
case PycObject::TYPE_SHORT_ASCII_INTERNED:
|
||||
iprintf(indent, "");
|
||||
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 'b' : 0);
|
||||
fprintf(pyc_output, "\n");
|
||||
@@ -128,6 +122,16 @@ void output_object(PycRef<PycObject> obj, PycModule* mod, int indent)
|
||||
OutputString(obj.cast<PycString>(), (mod->majorVer() == 3) ? 0 : 'u');
|
||||
fprintf(pyc_output, "\n");
|
||||
break;
|
||||
case PycObject::TYPE_STRINGREF:
|
||||
case PycObject::TYPE_INTERNED:
|
||||
case PycObject::TYPE_ASCII:
|
||||
case PycObject::TYPE_ASCII_INTERNED:
|
||||
case PycObject::TYPE_SHORT_ASCII:
|
||||
case PycObject::TYPE_SHORT_ASCII_INTERNED:
|
||||
iprintf(indent, "");
|
||||
OutputString(obj.cast<PycString>(), 0);
|
||||
fprintf(pyc_output, "\n");
|
||||
break;
|
||||
case PycObject::TYPE_TUPLE:
|
||||
case PycObject::TYPE_SMALL_TUPLE:
|
||||
{
|
||||
|
Reference in New Issue
Block a user