objstr: Allow to define statically allocated str objects.
Similar to tuples, lists, dicts. Statically allocated strings don't have hash computed.
This commit is contained in:
parent
59e269cfec
commit
58676fc2c7
@ -10,13 +10,7 @@
|
|||||||
#include "runtime0.h"
|
#include "runtime0.h"
|
||||||
#include "runtime.h"
|
#include "runtime.h"
|
||||||
#include "pfenv.h"
|
#include "pfenv.h"
|
||||||
|
#include "objstr.h"
|
||||||
typedef struct _mp_obj_str_t {
|
|
||||||
mp_obj_base_t base;
|
|
||||||
machine_uint_t hash : 16; // XXX here we assume the hash size is 16 bits (it is at the moment; see qstr.c)
|
|
||||||
machine_uint_t len : 16; // len == number of bytes used in data, alloc = len + 1 because (at the moment) we also append a null byte
|
|
||||||
const byte *data;
|
|
||||||
} mp_obj_str_t;
|
|
||||||
|
|
||||||
STATIC mp_obj_t str_modulo_format(mp_obj_t pattern, uint n_args, const mp_obj_t *args);
|
STATIC mp_obj_t str_modulo_format(mp_obj_t pattern, uint n_args, const mp_obj_t *args);
|
||||||
const mp_obj_t mp_const_empty_bytes;
|
const mp_obj_t mp_const_empty_bytes;
|
||||||
|
10
py/objstr.h
Normal file
10
py/objstr.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
typedef struct _mp_obj_str_t {
|
||||||
|
mp_obj_base_t base;
|
||||||
|
// XXX here we assume the hash size is 16 bits (it is at the moment; see qstr.c)
|
||||||
|
machine_uint_t hash : 16;
|
||||||
|
// len == number of bytes used in data, alloc = len + 1 because (at the moment) we also append a null byte
|
||||||
|
machine_uint_t len : 16;
|
||||||
|
const byte *data;
|
||||||
|
} mp_obj_str_t;
|
||||||
|
|
||||||
|
#define MP_DEFINE_STR_OBJ(obj_name, str) mp_obj_str_t obj_name = {{&mp_type_str}, 0, sizeof(str) - 1, (const byte*)str};
|
Loading…
Reference in New Issue
Block a user