/[eiffelstudio]/branches/CAT_mono/Src/Eiffel/eiffel/genericity/cl_type_i.e
ViewVC logotype

Diff of /branches/CAT_mono/Src/Eiffel/eiffel/genericity/cl_type_i.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 42865 by manus, Thu Apr 29 18:58:24 2004 UTC revision 43084 by manus, Tue May 18 04:14:09 2004 UTC
# Line 400  feature -- C generation Line 400  feature -- C generation
400                                          -- RTLX is a macro used to create                                          -- RTLX is a macro used to create
401                                          -- expanded types                                          -- expanded types
402                                  if gen_type /= Void then                                  if gen_type /= Void then
403                                          buffer.putstring (" = RTLX(typres")                                          buffer.put_string (" = RTLX(typres")
404                                  else                                  else
405                                          buffer.putstring (" = RTLX(RTUD(")                                          buffer.put_string (" = RTLX(RTUD(")
406                                          buffer.generate_type_id (associated_class_type.static_type_id)                                          buffer.put_static_type_id (associated_class_type.static_type_id)
407                                          buffer.putchar (')')                                          buffer.put_character (')')
408                                  end                                  end
409                          else                          else
410                                  if gen_type /= Void then                                  if gen_type /= Void then
411                                          buffer.putstring (" = RTLN(typres")                                          buffer.put_string (" = RTLN(typres")
412                                  else                                  else
413                                          buffer.putstring (" = RTLN(")                                          buffer.put_string (" = RTLN(")
414                                          buffer.putint (type_id - 1)                                          buffer.put_type_id (type_id)
415                                  end                                  end
416                                  class_type := associated_class_type                                  class_type := associated_class_type
417                                  creation_feature := class_type.associated_class.creation_feature                                  creation_feature := class_type.associated_class.creation_feature
# Line 425  feature -- C generation Line 425  feature -- C generation
425                                          end                                          end
426                                          c_name := Encoder.feature_name (written_type.static_type_id,                                          c_name := Encoder.feature_name (written_type.static_type_id,
427                                                  creation_feature.body_index)                                                  creation_feature.body_index)
428                                          buffer.putstring (");")                                          buffer.put_string (");")
429                                          buffer.new_line                                          buffer.put_new_line
430                                          buffer.putstring (c_name)                                          buffer.put_string (c_name)
431                                          buffer.putchar ('(')                                          buffer.put_character ('(')
432                                          reg.print_register                                          reg.print_register
433                                          Extern_declarations.add_routine_with_signature (Void_c_type,                                          Extern_declarations.add_routine_with_signature (Void_c_type,
434                                                  c_name, <<"EIF_REFERENCE">>)                                                  c_name, <<"EIF_REFERENCE">>)
435                                  end                                  end
436                          end                          end
437                          buffer.putchar (')')                          buffer.put_character (')')
438                          buffer.putchar (';')                          buffer.put_character (';')
439    
440                          if gen_type /= Void then                          if gen_type /= Void then
441                                  byte_code.generate_block_close                                  byte_code.generate_block_close
442                          end                          end
443                          buffer.new_line                          buffer.put_new_line
444                  end                  end
445    
446          generate_cecil_value (buffer: GENERATION_BUFFER) is          generate_cecil_value (buffer: GENERATION_BUFFER) is
447                          -- Generate cecil value                          -- Generate cecil value
448                  do                  do
449                          if not is_expanded then                          if not is_expanded then
450                                  buffer.putstring ("SK_REF + (uint32) ")                                  buffer.put_string ("SK_REF + (uint32) ")
451                          else                          else
452                                  buffer.putstring ("SK_EXP + (uint32) ")                                  buffer.put_string ("SK_EXP + (uint32) ")
453                          end                          end
454                          buffer.putint (associated_class_type.type_id - 1)                          buffer.put_type_id (associated_class_type.type_id)
455                  end                  end
456    
457  feature -- Array optimization  feature -- Array optimization
# Line 490  feature -- Generic conformance Line 490  feature -- Generic conformance
490                                  -- It's an anchored type                                  -- It's an anchored type
491                                  cr_info.generate_cid (buffer, final_mode)                                  cr_info.generate_cid (buffer, final_mode)
492                          else                          else
493                                  buffer.putint (generated_id (final_mode))                                  buffer.put_integer (generated_id (final_mode))
494                                  buffer.putstring (", ")                                  buffer.put_string (", ")
495                          end                          end
496                  end                  end
497    
# Line 520  feature -- Generic conformance Line 520  feature -- Generic conformance
520                                          -- It's an anchored type                                          -- It's an anchored type
521                                  cr_info.generate_cid_array (buffer, final_mode, idx_cnt)                                  cr_info.generate_cid_array (buffer, final_mode, idx_cnt)
522                          else                          else
523                                  buffer.putint (generated_id (final_mode))                                  buffer.put_integer (generated_id (final_mode))
524                                  buffer.putstring (", ")                                  buffer.put_string (", ")
525    
526                                          -- Increment counter                                          -- Increment counter
527                                  dummy := idx_cnt.next                                  dummy := idx_cnt.next

Legend:
Removed from v.42865  
changed lines
  Added in v.43084

  ViewVC Help
Powered by ViewVC 1.1.23