psych 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b628607fc4e3ef10c115fad87828d70df6be24f347804f6cf4230ca52b945fde
4
- data.tar.gz: 1fe6f870598501b36fb154f220290f4386a411f809484a8e1ffc0d16f43fb7d8
3
+ metadata.gz: 8d2864bd6b2ce0aa8d9c7a1793c6531d582ce5591f61fa77a5147b495a0eacff
4
+ data.tar.gz: fb30e5a5a677c813e058366c8ee1339c986c65f9bc51f69e94771d31199ae7e8
5
5
  SHA512:
6
- metadata.gz: 24898c2f34f70c0a8de488d818b4f92487315ad5605669f34d066f721ba889d5df2a3f184bafda94c46d1e36d47f2014f2e8645f5ac5ddf3fc0f9c0c3c7fefd2
7
- data.tar.gz: 90412192fb3318218ab650386e4ab511fa8531bb75a161e2587e10a3bbba190d1c8fd1604d24ded9c4a75836a2a76e01ef1cc50f29950fbbd13724714752d0ee
6
+ metadata.gz: 7c2fcf1411c11ff9e7479b79564fc1114c76f12a7b6c6a9ad983f8d565691bcc5b012f0db28529974f1fd274929452b99366af885d094b596da625568149a456
7
+ data.tar.gz: 433269e6942d6b1e8812bee88844816aafe7b67c2e58ad51ecf4ddfa45e3c8a99f7265b0a7bb48e4dfc758142fa6503c1b17a2e35036c4bad56dc28fe73414f5
data/Gemfile CHANGED
@@ -1,3 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ group :development do
6
+ gem 'rake-compiler', ">= 0.4.1"
7
+ gem 'minitest', "~> 5.0"
8
+ gem 'ruby-maven', :platforms => :jruby
9
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2009 Aaron Patterson, et al.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md CHANGED
@@ -1,8 +1,5 @@
1
1
  # Psych
2
2
 
3
- [![Build Status](https://travis-ci.org/ruby/psych.svg?branch=master)](https://travis-ci.org/ruby/psych)
4
- [![Build status](https://ci.appveyor.com/api/projects/status/2t6x109xfmbx209k/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/psych/branch/master)
5
-
6
3
  * https://github.com/ruby/psych
7
4
 
8
5
  ## Description
data/Rakefile CHANGED
@@ -28,21 +28,7 @@ if RUBY_PLATFORM =~ /java/
28
28
  end
29
29
  else
30
30
  require 'rake/extensiontask'
31
- spec = Gem::Specification.load("psych.gemspec")
32
- Rake::ExtensionTask.new("psych", spec) do |ext|
33
- ext.lib_dir = File.join(*['lib', ENV['FAT_DIR']].compact)
34
- ext.cross_compile = true
35
- ext.cross_platform = %w[x86-mingw32 x64-mingw32]
36
- ext.cross_compiling do |s|
37
- s.files.concat ["lib/2.3/psych.so", "lib/2.4/psych.so", "lib/2.5/psych.so"]
38
- end
39
- end
40
- end
41
-
42
- desc "Compile binaries for mingw platform using rake-compiler-dock"
43
- task 'build:mingw' do
44
- require 'rake_compiler_dock'
45
- RakeCompilerDock.sh "bundle && rake cross native gem RUBY_CC_VERSION=2.5.0:2.4.0:2.3.0"
31
+ Rake::ExtensionTask.new("psych")
46
32
  end
47
33
 
48
34
  task :default => [:compile, :test]
@@ -1,3 +1,5 @@
1
+ $(OBJS): $(YAML_H)
2
+
1
3
  $(OBJS): $(HDRS) $(ruby_headers) \
2
4
  $(hdrdir)/ruby/encoding.h \
3
5
  $(hdrdir)/ruby/oniguruma.h
@@ -13,8 +13,10 @@ if enable_config("bundled-libyaml", false) || !(find_header('yaml.h') && find_li
13
13
  $VPATH << "$(srcdir)/yaml"
14
14
  $INCFLAGS << " -I$(srcdir)/yaml"
15
15
 
16
- $srcs = Dir.glob("#{$srcdir}/{,yaml/}*.c").map {|n| File.basename(n)}
16
+ $srcs = Dir.glob("#{$srcdir}/{,yaml/}*.c").map {|n| File.basename(n)}.sort
17
17
 
18
+ header = 'yaml/yaml.h'
19
+ header = "{$(VPATH)}#{header}" if $nmake
18
20
  if have_macro("_WIN32")
19
21
  $CPPFLAGS << " -DYAML_DECLARE_STATIC -DHAVE_CONFIG_H"
20
22
  end
@@ -34,6 +36,8 @@ if enable_config("bundled-libyaml", false) || !(find_header('yaml.h') && find_li
34
36
  have_header 'config.h'
35
37
  end
36
38
 
37
- create_makefile 'psych'
39
+ create_makefile 'psych' do |mk|
40
+ mk << "YAML_H = #{header}".strip << "\n"
41
+ end
38
42
 
39
43
  # :startdoc:
@@ -11,9 +11,9 @@ static VALUE libyaml_version(VALUE module)
11
11
 
12
12
  yaml_get_version(&major, &minor, &patch);
13
13
 
14
- list[0] = INT2NUM((long)major);
15
- list[1] = INT2NUM((long)minor);
16
- list[2] = INT2NUM((long)patch);
14
+ list[0] = INT2NUM(major);
15
+ list[1] = INT2NUM(minor);
16
+ list[2] = INT2NUM(patch);
17
17
 
18
18
  return rb_ary_new4((long)3, list);
19
19
  }
@@ -1,7 +1,6 @@
1
1
  #include <psych.h>
2
2
 
3
3
  VALUE cPsychParser;
4
- VALUE ePsychSyntaxError;
5
4
 
6
5
  static ID id_read;
7
6
  static ID id_path;
@@ -28,7 +27,7 @@ static ID id_event_location;
28
27
  static int io_reader(void * data, unsigned char *buf, size_t size, size_t *read)
29
28
  {
30
29
  VALUE io = (VALUE)data;
31
- VALUE string = rb_funcall(io, id_read, 1, INT2NUM(size));
30
+ VALUE string = rb_funcall(io, id_read, 1, SIZET2NUM(size));
32
31
 
33
32
  *read = 0;
34
33
 
@@ -81,15 +80,18 @@ static VALUE allocate(VALUE klass)
81
80
  static VALUE make_exception(yaml_parser_t * parser, VALUE path)
82
81
  {
83
82
  size_t line, column;
83
+ VALUE ePsychSyntaxError;
84
84
 
85
85
  line = parser->context_mark.line + 1;
86
86
  column = parser->context_mark.column + 1;
87
87
 
88
+ ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));
89
+
88
90
  return rb_funcall(ePsychSyntaxError, rb_intern("new"), 6,
89
91
  path,
90
- INT2NUM(line),
91
- INT2NUM(column),
92
- INT2NUM(parser->problem_offset),
92
+ SIZET2NUM(line),
93
+ SIZET2NUM(column),
94
+ SIZET2NUM(parser->problem_offset),
93
95
  parser->problem ? rb_usascii_str_new2(parser->problem) : Qnil,
94
96
  parser->context ? rb_usascii_str_new2(parser->context) : Qnil);
95
97
  }
@@ -254,7 +256,6 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
254
256
  yaml_parser_t * parser;
255
257
  yaml_event_t event;
256
258
  int done = 0;
257
- int tainted = 0;
258
259
  int state = 0;
259
260
  int parser_encoding = YAML_ANY_ENCODING;
260
261
  int encoding = rb_utf8_encindex();
@@ -273,13 +274,10 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
273
274
  yaml_parser_delete(parser);
274
275
  yaml_parser_initialize(parser);
275
276
 
276
- if (OBJ_TAINTED(yaml)) tainted = 1;
277
-
278
277
  if (rb_respond_to(yaml, id_read)) {
279
278
  yaml = transcode_io(yaml, &parser_encoding);
280
279
  yaml_parser_set_encoding(parser, parser_encoding);
281
280
  yaml_parser_set_input(parser, io_reader, (void *)yaml);
282
- if (RTEST(rb_obj_is_kind_of(yaml, rb_cIO))) tainted = 1;
283
281
  } else {
284
282
  StringValue(yaml);
285
283
  yaml = transcode_string(yaml, &parser_encoding);
@@ -305,10 +303,10 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
305
303
  rb_exc_raise(exception);
306
304
  }
307
305
 
308
- start_line = INT2NUM((long)event.start_mark.line);
309
- start_column = INT2NUM((long)event.start_mark.column);
310
- end_line = INT2NUM((long)event.end_mark.line);
311
- end_column = INT2NUM((long)event.end_mark.column);
306
+ start_line = SIZET2NUM(event.start_mark.line);
307
+ start_column = SIZET2NUM(event.start_mark.column);
308
+ end_line = SIZET2NUM(event.end_mark.line);
309
+ end_column = SIZET2NUM(event.end_mark.column);
312
310
 
313
311
  event_args[0] = handler;
314
312
  event_args[1] = start_line;
@@ -323,7 +321,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
323
321
  VALUE args[2];
324
322
 
325
323
  args[0] = handler;
326
- args[1] = INT2NUM((long)event.data.stream_start.encoding);
324
+ args[1] = INT2NUM(event.data.stream_start.encoding);
327
325
  rb_protect(protected_start_stream, (VALUE)args, &state);
328
326
  }
329
327
  break;
@@ -336,8 +334,8 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
336
334
  VALUE version = event.data.document_start.version_directive ?
337
335
  rb_ary_new3(
338
336
  (long)2,
339
- INT2NUM((long)event.data.document_start.version_directive->major),
340
- INT2NUM((long)event.data.document_start.version_directive->minor)
337
+ INT2NUM(event.data.document_start.version_directive->major),
338
+ INT2NUM(event.data.document_start.version_directive->minor)
341
339
  ) : rb_ary_new();
342
340
 
343
341
  if(event.data.document_start.tag_directives.start) {
@@ -350,13 +348,11 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
350
348
  VALUE prefix = Qnil;
351
349
  if(start->handle) {
352
350
  handle = rb_str_new2((const char *)start->handle);
353
- if (tainted) OBJ_TAINT(handle);
354
351
  PSYCH_TRANSCODE(handle, encoding, internal_enc);
355
352
  }
356
353
 
357
354
  if(start->prefix) {
358
355
  prefix = rb_str_new2((const char *)start->prefix);
359
- if (tainted) OBJ_TAINT(prefix);
360
356
  PSYCH_TRANSCODE(prefix, encoding, internal_enc);
361
357
  }
362
358
 
@@ -385,7 +381,6 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
385
381
  VALUE alias = Qnil;
386
382
  if(event.data.alias.anchor) {
387
383
  alias = rb_str_new2((const char *)event.data.alias.anchor);
388
- if (tainted) OBJ_TAINT(alias);
389
384
  PSYCH_TRANSCODE(alias, encoding, internal_enc);
390
385
  }
391
386
 
@@ -404,19 +399,16 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
404
399
  (const char *)event.data.scalar.value,
405
400
  (long)event.data.scalar.length
406
401
  );
407
- if (tainted) OBJ_TAINT(val);
408
402
 
409
403
  PSYCH_TRANSCODE(val, encoding, internal_enc);
410
404
 
411
405
  if(event.data.scalar.anchor) {
412
406
  anchor = rb_str_new2((const char *)event.data.scalar.anchor);
413
- if (tainted) OBJ_TAINT(anchor);
414
407
  PSYCH_TRANSCODE(anchor, encoding, internal_enc);
415
408
  }
416
409
 
417
410
  if(event.data.scalar.tag) {
418
411
  tag = rb_str_new2((const char *)event.data.scalar.tag);
419
- if (tainted) OBJ_TAINT(tag);
420
412
  PSYCH_TRANSCODE(tag, encoding, internal_enc);
421
413
  }
422
414
 
@@ -426,7 +418,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
426
418
  quoted_implicit =
427
419
  event.data.scalar.quoted_implicit == 0 ? Qfalse : Qtrue;
428
420
 
429
- style = INT2NUM((long)event.data.scalar.style);
421
+ style = INT2NUM(event.data.scalar.style);
430
422
 
431
423
  args[0] = handler;
432
424
  args[1] = val;
@@ -446,21 +438,19 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
446
438
  VALUE implicit, style;
447
439
  if(event.data.sequence_start.anchor) {
448
440
  anchor = rb_str_new2((const char *)event.data.sequence_start.anchor);
449
- if (tainted) OBJ_TAINT(anchor);
450
441
  PSYCH_TRANSCODE(anchor, encoding, internal_enc);
451
442
  }
452
443
 
453
444
  tag = Qnil;
454
445
  if(event.data.sequence_start.tag) {
455
446
  tag = rb_str_new2((const char *)event.data.sequence_start.tag);
456
- if (tainted) OBJ_TAINT(tag);
457
447
  PSYCH_TRANSCODE(tag, encoding, internal_enc);
458
448
  }
459
449
 
460
450
  implicit =
461
451
  event.data.sequence_start.implicit == 0 ? Qfalse : Qtrue;
462
452
 
463
- style = INT2NUM((long)event.data.sequence_start.style);
453
+ style = INT2NUM(event.data.sequence_start.style);
464
454
 
465
455
  args[0] = handler;
466
456
  args[1] = anchor;
@@ -482,20 +472,18 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
482
472
  VALUE implicit, style;
483
473
  if(event.data.mapping_start.anchor) {
484
474
  anchor = rb_str_new2((const char *)event.data.mapping_start.anchor);
485
- if (tainted) OBJ_TAINT(anchor);
486
475
  PSYCH_TRANSCODE(anchor, encoding, internal_enc);
487
476
  }
488
477
 
489
478
  if(event.data.mapping_start.tag) {
490
479
  tag = rb_str_new2((const char *)event.data.mapping_start.tag);
491
- if (tainted) OBJ_TAINT(tag);
492
480
  PSYCH_TRANSCODE(tag, encoding, internal_enc);
493
481
  }
494
482
 
495
483
  implicit =
496
484
  event.data.mapping_start.implicit == 0 ? Qfalse : Qtrue;
497
485
 
498
- style = INT2NUM((long)event.data.mapping_start.style);
486
+ style = INT2NUM(event.data.mapping_start.style);
499
487
 
500
488
  args[0] = handler;
501
489
  args[1] = anchor;
@@ -539,9 +527,9 @@ static VALUE mark(VALUE self)
539
527
 
540
528
  TypedData_Get_Struct(self, yaml_parser_t, &psych_parser_type, parser);
541
529
  mark_klass = rb_const_get_at(cPsychParser, rb_intern("Mark"));
542
- args[0] = INT2NUM(parser->mark.index);
543
- args[1] = INT2NUM(parser->mark.line);
544
- args[2] = INT2NUM(parser->mark.column);
530
+ args[0] = SIZET2NUM(parser->mark.index);
531
+ args[1] = SIZET2NUM(parser->mark.line);
532
+ args[2] = SIZET2NUM(parser->mark.column);
545
533
 
546
534
  return rb_class_new_instance(3, args, mark_klass);
547
535
  }
@@ -569,7 +557,6 @@ void Init_psych_parser(void)
569
557
  rb_define_const(cPsychParser, "UTF16BE", INT2NUM(YAML_UTF16BE_ENCODING));
570
558
 
571
559
  rb_require("psych/syntax_error");
572
- ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));
573
560
 
574
561
  rb_define_method(cPsychParser, "parse", parse, -1);
575
562
  rb_define_method(cPsychParser, "mark", mark, 0);
@@ -2,23 +2,11 @@
2
2
 
3
3
  VALUE cPsychVisitorsYamlTree;
4
4
 
5
- /*
6
- * call-seq: private_iv_get(target, prop)
7
- *
8
- * Get the private instance variable +prop+ from +target+
9
- */
10
- static VALUE private_iv_get(VALUE self, VALUE target, VALUE prop)
11
- {
12
- return rb_attr_get(target, rb_intern(StringValueCStr(prop)));
13
- }
14
-
15
5
  void Init_psych_yaml_tree(void)
16
6
  {
17
7
  VALUE psych = rb_define_module("Psych");
18
8
  VALUE visitors = rb_define_module_under(psych, "Visitors");
19
9
  VALUE visitor = rb_define_class_under(visitors, "Visitor", rb_cObject);
20
10
  cPsychVisitorsYamlTree = rb_define_class_under(visitors, "YAMLTree", visitor);
21
-
22
- rb_define_private_method(cPsychVisitorsYamlTree, "private_iv_get", private_iv_get, 2);
23
11
  }
24
12
  /* vim: set noet sws=4 sw=4: */
@@ -118,7 +118,12 @@ yaml_string_join(
118
118
  YAML_DECLARE(int)
119
119
  yaml_stack_extend(void **start, void **top, void **end)
120
120
  {
121
- void *new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2);
121
+ void *new_start;
122
+
123
+ if ((char *)*end - (char *)*start >= INT_MAX / 2)
124
+ return 0;
125
+
126
+ new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2);
122
127
 
123
128
  if (!new_start) return 0;
124
129
 
@@ -618,10 +623,10 @@ yaml_token_delete(yaml_token_t *token)
618
623
  */
619
624
 
620
625
  static int
621
- yaml_check_utf8(yaml_char_t *start, size_t length)
626
+ yaml_check_utf8(const yaml_char_t *start, size_t length)
622
627
  {
623
- yaml_char_t *end = start+length;
624
- yaml_char_t *pointer = start;
628
+ const yaml_char_t *end = start+length;
629
+ const yaml_char_t *pointer = start;
625
630
 
626
631
  while (pointer < end) {
627
632
  unsigned char octet;
@@ -789,7 +794,7 @@ yaml_document_end_event_initialize(yaml_event_t *event, int implicit)
789
794
  */
790
795
 
791
796
  YAML_DECLARE(int)
792
- yaml_alias_event_initialize(yaml_event_t *event, yaml_char_t *anchor)
797
+ yaml_alias_event_initialize(yaml_event_t *event, const yaml_char_t *anchor)
793
798
  {
794
799
  yaml_mark_t mark = { 0, 0, 0 };
795
800
  yaml_char_t *anchor_copy = NULL;
@@ -814,8 +819,8 @@ yaml_alias_event_initialize(yaml_event_t *event, yaml_char_t *anchor)
814
819
 
815
820
  YAML_DECLARE(int)
816
821
  yaml_scalar_event_initialize(yaml_event_t *event,
817
- yaml_char_t *anchor, yaml_char_t *tag,
818
- yaml_char_t *value, int length,
822
+ const yaml_char_t *anchor, const yaml_char_t *tag,
823
+ const yaml_char_t *value, int length,
819
824
  int plain_implicit, int quoted_implicit,
820
825
  yaml_scalar_style_t style)
821
826
  {
@@ -840,7 +845,7 @@ yaml_scalar_event_initialize(yaml_event_t *event,
840
845
  }
841
846
 
842
847
  if (length < 0) {
843
- length = strlen((char *)value);
848
+ length = (int)strlen((char *)value);
844
849
  }
845
850
 
846
851
  if (!yaml_check_utf8(value, length)) goto error;
@@ -868,7 +873,7 @@ error:
868
873
 
869
874
  YAML_DECLARE(int)
870
875
  yaml_sequence_start_event_initialize(yaml_event_t *event,
871
- yaml_char_t *anchor, yaml_char_t *tag, int implicit,
876
+ const yaml_char_t *anchor, const yaml_char_t *tag, int implicit,
872
877
  yaml_sequence_style_t style)
873
878
  {
874
879
  yaml_mark_t mark = { 0, 0, 0 };
@@ -923,7 +928,7 @@ yaml_sequence_end_event_initialize(yaml_event_t *event)
923
928
 
924
929
  YAML_DECLARE(int)
925
930
  yaml_mapping_start_event_initialize(yaml_event_t *event,
926
- yaml_char_t *anchor, yaml_char_t *tag, int implicit,
931
+ const yaml_char_t *anchor, const yaml_char_t *tag, int implicit,
927
932
  yaml_mapping_style_t style)
928
933
  {
929
934
  yaml_mark_t mark = { 0, 0, 0 };
@@ -1117,13 +1122,8 @@ error:
1117
1122
  YAML_DECLARE(void)
1118
1123
  yaml_document_delete(yaml_document_t *document)
1119
1124
  {
1120
- struct {
1121
- yaml_error_type_t error;
1122
- } context;
1123
1125
  yaml_tag_directive_t *tag_directive;
1124
1126
 
1125
- context.error = YAML_NO_ERROR; /* Eliminate a compliler warning. */
1126
-
1127
1127
  assert(document); /* Non-NULL document object is expected. */
1128
1128
 
1129
1129
  while (!STACK_EMPTY(&context, document->nodes)) {
@@ -1193,7 +1193,7 @@ yaml_document_get_root_node(yaml_document_t *document)
1193
1193
 
1194
1194
  YAML_DECLARE(int)
1195
1195
  yaml_document_add_scalar(yaml_document_t *document,
1196
- yaml_char_t *tag, yaml_char_t *value, int length,
1196
+ const yaml_char_t *tag, const yaml_char_t *value, int length,
1197
1197
  yaml_scalar_style_t style)
1198
1198
  {
1199
1199
  struct {
@@ -1216,7 +1216,7 @@ yaml_document_add_scalar(yaml_document_t *document,
1216
1216
  if (!tag_copy) goto error;
1217
1217
 
1218
1218
  if (length < 0) {
1219
- length = strlen((char *)value);
1219
+ length = (int)strlen((char *)value);
1220
1220
  }
1221
1221
 
1222
1222
  if (!yaml_check_utf8(value, length)) goto error;
@@ -1228,7 +1228,7 @@ yaml_document_add_scalar(yaml_document_t *document,
1228
1228
  SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark);
1229
1229
  if (!PUSH(&context, document->nodes, node)) goto error;
1230
1230
 
1231
- return document->nodes.top - document->nodes.start;
1231
+ return (int)(document->nodes.top - document->nodes.start);
1232
1232
 
1233
1233
  error:
1234
1234
  yaml_free(tag_copy);
@@ -1243,7 +1243,7 @@ error:
1243
1243
 
1244
1244
  YAML_DECLARE(int)
1245
1245
  yaml_document_add_sequence(yaml_document_t *document,
1246
- yaml_char_t *tag, yaml_sequence_style_t style)
1246
+ const yaml_char_t *tag, yaml_sequence_style_t style)
1247
1247
  {
1248
1248
  struct {
1249
1249
  yaml_error_type_t error;
@@ -1273,7 +1273,7 @@ yaml_document_add_sequence(yaml_document_t *document,
1273
1273
  style, mark, mark);
1274
1274
  if (!PUSH(&context, document->nodes, node)) goto error;
1275
1275
 
1276
- return document->nodes.top - document->nodes.start;
1276
+ return (int)(document->nodes.top - document->nodes.start);
1277
1277
 
1278
1278
  error:
1279
1279
  STACK_DEL(&context, items);
@@ -1288,7 +1288,7 @@ error:
1288
1288
 
1289
1289
  YAML_DECLARE(int)
1290
1290
  yaml_document_add_mapping(yaml_document_t *document,
1291
- yaml_char_t *tag, yaml_mapping_style_t style)
1291
+ const yaml_char_t *tag, yaml_mapping_style_t style)
1292
1292
  {
1293
1293
  struct {
1294
1294
  yaml_error_type_t error;
@@ -1318,7 +1318,7 @@ yaml_document_add_mapping(yaml_document_t *document,
1318
1318
  style, mark, mark);
1319
1319
  if (!PUSH(&context, document->nodes, node)) goto error;
1320
1320
 
1321
- return document->nodes.top - document->nodes.start;
1321
+ return (int)(document->nodes.top - document->nodes.start);
1322
1322
 
1323
1323
  error:
1324
1324
  STACK_DEL(&context, pairs);